[QUOTE=FArt]Noch mal: was glaubst du können andere Entwickler mit deinem Code anfangen? Es kochen alle nur mit Wasser und die wenigsten entwickeln bahnbrechende Neuheiten.
Und wie schon erwähnt wurde: Reengineering ist immer möglich.
Meine Erfahrung ist, dass die Leute, die sich darüber die meisten Gedanken machen eher qualitativ schlechteren Code schreiben… nun gut, auch eine Möglichkeit… self obfuscating code[/QUOTE]
Ich muss mal dazu sagen das ich die Frage hier nicht für mich stellen sondern eher für die Firma für die ich arbeite.
Wir haben schon Code den unsere Kongruenz nicht sehen sollte.
Das man früher oder später mit mehr oder weniger Aufwand jedes Programm wieder lesbar bekommt ist mir auch klar. Es geht ja im Grunde darum das die Hürde so hoch ist, das sich der Finanzielle Aufwand es zu dekompilieren nicht rechnet.
Was ist eine Kongruenz-Firma (evtl. eine, die auf „TWIX“-Riegel „Raider“ druckt)? Hey… Das heisst Konkurrenz…
Aber was solls. Der genialste Code, der es wert wäre, versteckt zu werden, ist bereits zu Häuf in Open-Source vorhanden. Allzuviele bahnbrechende Algorhitmen, die schützendwert sind, wurden in lezter Zeit afaik nur sehr wenige entwickelt.
Die Intention Code schützen zu wollen, kann deswegen nur folgende Gründe haben.
Der Code ist wirklich bahnbrechend.
Der Code enthält ein Kopierschutzverfahren.
Der Code wurde lizenzrechtlich missbraucht
Der Code wird per selbst gekaufter Einzellizenz vertrieben.
ist recht selten der Fall. Bei 2. darf der finanzielle Teil nicht mehr aufwendig sein, wie jener Aufwand, den man für RE benötigt. Dieser Aufwand schlägt sich im Verkaufspreis der SW nieder.
Bei 3. läuft man eh’ immer Gefahr erwischt zu werden und bei 4. Auweh… wenn das jemand knackt.
Meine Firma obfuskiert den Code auch. Wir haben Implementierungen von Algorithmen, die eben besonders sind. Nicht die Algorithmen, die sind in Publikationen beschrieben und von jedem nachvollziehbar. Aber eben die Implementierungen sind dann optimiert.
Ich denke dass viele der Meinung sind durch dekompilieren von Klassen laesst sich eine Implementierung leicht nachvollziehen. Das allein ist meiner Ansicht nach schon naiv. Wenn deine Implementierung teil eines Frameworks von zig tausend Klasse ist, so ist es alles andere als intuitiv mal eben den Code zu lesen. Obfuscation tut sein uebriges auch.
Gute Leute sind schneller dabei eigene Implementierung auf die Beine zu stellen, als fremden Code zu verstehen und nachzubauen. Das machen schlechte Leute und vor denen braucht man sich dann nicht zu fuerchten (immer mit Ausnahmen).
Das wichtigste bei Firmencode ist die Lizenzierung, wenn diese richtig ist, so hat man schon das wichtigste. Wenn man dann irgendwann rausstellt dass andere wirklich die Implementierungsidee geklaut haben, so schaltet man die Anwaelte ein.