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
Gast
#2054482
Nun man könnte obfuscaten oder mit einem geeigneten Compiler direkt in Binärcode übersetzen
Gast
#2054484
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.
Prima! Danke für die super schnellen Antworten.
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 | |
Die meisten dieser verschleierten Programme hätte man jedoch besser mit dem Compileschalter
1 | |
compiliert ;)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.