Java Code so umändern, dass er die gleiche Funktion noch ausführt?

... komplette Frage anzeigen

3 Antworten

Es gibt sog. "Obfuscators", die arbeiten bei einer Compilersprache wie Java aber auf Ebene des Bytecodes, nicht auf Ebene des Quellcodes. Auf Quellcode-Ebene kenne ich sowas nur für Interpretersprachen wie Javascript. 

Hier der Link zu einem Überblicksartikel, in dem auch kostenlose Lösungen für Java genannt werden: http://www.excelsior-usa.com/articles/java-obfuscators.html

Antwort bewerten Vielen Dank für Deine Bewertung

Schreib dir doch schnell selbst so ein Programm. :)

Dann könntest du z. B. aus ...

if (x == 123) {
// ...
} else {
// ...
}

... einfach ...

switch (x) {
case 123:
// ...
break;
default:
// ...
}

... machen.

Was auch immer das bringen soll. :)

Aber sei dir bitte darüber im Klaren, dass der Compiler viele völlig unterschiedliche Ausdrücke optimiert und in ein und den selben Bytecode übersetzt. Disassembliert oder dekompiliert man das Ergebnis dann, ist es durchaus möglich, dass die ursprüngliche unverschleierte Version zum Vorschein kommt.

Das ist auch der Grund, warum geklauter Quelltext oft sehr einfach im Bytecode eines Programms zu erkennen ist. Mir ist gerade der Name entfallen, aber seit einiger Zeit schafft es eine gewisse Firma immer wieder in die Nachrichten, weil sie einfach dreist GPL Quelltexte klaut, und leicht abgewandelt in ihren eigenen kommerziellen Produkten einsetzt.

Diese Firma gibt sich nachweislich größte Mühe, den Diebstahl zu verschleiern, aber es gelingt ihnen nicht zu 100%, und deshalb werden sie immer und immer wieder erwischt.

Also davon abgesehen, dass man Quelltexte sowieso nicht klaut, solltest du dein Vorhaben lieber vergessen, wenn du nicht mindestens deutlich schlauer bist, als besagte Firma.

Normalerweise läuft der Prozess der Plagiatsfindung in Software automatisch ab, und so ziemlich jede kommerzielle Software wird gegen Code aus allen GitHub und SourceForge Projekten gecheckt. Es gibt sogar Firmen, die sich darauf spezialisiert haben, solche Plagiate aufzudecken.

Also falls es deine Intention ist, einen geklauten Quelltext so hinzupfrimeln, dass er nicht wieder erkannt werden kann, dann wird das äußerst schwierig für dich werden, vor allem bei höheren Optimierungsstufen des Compilers.

Naja, viel Spaß damit. Was auch immer du vor hast. :)

Antwort bewerten Vielen Dank für Deine Bewertung

Du meinst um ein Plagiat zu verschleiern? 

Nein soweit ich weiß gibt es keine solche Website, und ein solches Programm gibt es sicher, aber ist nicht frei zu nutzen.

Antwort bewerten Vielen Dank für Deine Bewertung