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.
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…