Obfuskation: Code-Dieben das Handwerk legen

Neben dem Austausch von Buchstaben und der Unterdrückung von Zeilennummern gibt es auch noch verschiedene andere Tricks, die die einzelnen Obfuskatoren einsetzen. Eine beliebte Möglichkeit zur Verschleierung von Quellcode besteht in der Weiterentwicklung bedeutungsloser Zeichenketten. Bei diesem Trick wird ein Symbol der Klassendatei durch eine illegale Kette ersetzt. Der Ersatz könnte ein Schlüsselwort, beispielsweise privat, oder noch vertrackter ein vollständig bedeutungsloses Symbol sein, wie etwa ***.

Einige virtuelle Systeme, insbesondere solche in Browsern, verstehen bei diesen Spielchen keinen Spaß. Technisch gesehen ist eine Variable mit einem Symbol als Namen, wie zum Beispiel =, konträr zur Java-Spezifikation. Einige virtuelle Systeme ignorieren das jedoch.

Eine andere Technik, die einige Obfuskatoren einsetzen, zielt normalerweise auf spezielle Dekompilierer ab, wie beispielsweise Mocha und JODE. In diesem Fall wird eine schlechte Anweisung in den Code integriert. Beim Einsatz des Codes ist das kein Problem, aber es lässt den Dekompilierer abstürzen.

Als Beispiel für eine solche schlechte Anweisung dient hier der ursprüngliche Code (dekompiliert):


Method void main(java.lang.String[])
0 new #4
3 invokespecial #10
6 return

und der Code nach einer Obfuskation (zur einfacheren Darstellung werden die Namen beibehalten):


Method void main(java.lang.String[])
0 new #4
3 invokespecial #10
6 return
7 pop

Die Programmroutine verfügt jetzt nach dem Rücksprung über eine Abhebungsanweisung. Natürlich kann eine Funktion nach ihrem Rücksprung nichts mehr bewirken – das ist der Trick dabei. Indem man eine Anweisung nach einem Rücksprungbefehl platziert, kann man sicherstellen, dass sie nie ausgeführt wird. Damit ist es weitestgehend unmöglich den Code zu dekompilieren. Er macht keinen Sinn, weil er keinem möglichen Java-Quellcode entspricht.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Obfuskation: Code-Dieben das Handwerk legen

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *