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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

1 Tag ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

1 Tag ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

1 Tag ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

2 Tagen ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

2 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

2 Tagen ago