Hallo, kann man Java Programme auch so schreiben, dass sie sich nicht so leicht wieder decompilieren lassen (original Quelltext), oder ist das aufgrund des ByteCodes nicht möglich? Grüße, Manuel
Nun man könnte obfuscaten oder mit einem geeigneten Compiler direkt in Binärcode übersetzen
er lässt sich immer decompilieren. Aber es gibt Programm die vorher die code so unleserlich machen( alle Klassen und Methoden kryptich umbenennen, und konstanten verschleiern ) Damit kann man meist wenig mit dem ergebniss anfangen. Es gibt auch noch ein paar möglichkeiten den bytecode so umzustellen das der decompiler nicht so reicht weiss war er machen soll. aber komplett verbinder kann man es nicht. (Das gleiche problem betrifft auch .net)
Es scheint einen Markt für Java-Bytecode-Obfuscatoren zu geben, also ist anzunehmen, daß zumindest eine Näherung des Quelltextes rekonstruierbar sein könnte.
Es hindert dich natürlich auch keiner daran deine Klassen mit einem geeignetem Verfahren zu verschlüsseln, und dann mit einem passendem Classloader wieder zu dekodieren, dann liegt alles halt nur zur Laufzeit vor (theoretisch könnte man das dann wieder per Reflection versuchen hinter den Sinn zu kommen. Die Frage ist halt wie so oft: Was für geniale und ausgefeilte Algorithmen nutzt du als dass du befürchtest das jemand sich die Mühe macht diese zu "klauen". (Ansonsten hilft es auch schon den Compiler zu bitte gewisse Informationen nicht im Classfile abzulegen, beim javac z.B.
1 | -g:none Generate no debugging info |
Die meisten dieser verschleierten Programme hätte man jedoch besser mit dem Compileschalter
1 | -Xlint Enable recommended warnings |
compiliert ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.