Manual DeObfuscation

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Manuelle De-Obfuscationstechniken

Im Bereich der Software-Sicherheit ist der Prozess des Verständlichmachens von verschleiertem Code, bekannt als De-Obfuscation, entscheidend. Dieser Leitfaden geht auf verschiedene Strategien zur De-Obfuscation ein, wobei der Schwerpunkt auf statischen Analysetechniken und der Erkennung von Obfuscation-Mustern liegt. Darüber hinaus stellt er eine Übung zur praktischen Anwendung vor und schlägt weitere Ressourcen für diejenigen vor, die sich für fortgeschrittenere Themen interessieren.

Strategien für die statische De-Obfuscation

Bei der Bearbeitung von verschleiertem Code können je nach Art der Verschleierung verschiedene Strategien angewendet werden:

  • DEX-Bytecode (Java): Ein effektiver Ansatz besteht darin, die De-Obfuscation-Methoden der Anwendung zu identifizieren und diese Methoden in einer Java-Datei zu replizieren. Diese Datei wird ausgeführt, um die Verschleierungseffekte auf den Zielobjekten umzukehren.

  • Java und nativer Code: Eine andere Methode besteht darin, den De-Obfuscation-Algorithmus in eine Skriptsprache wie Python zu übersetzen. Diese Strategie verdeutlicht, dass das Hauptziel nicht darin besteht, den Algorithmus vollständig zu verstehen, sondern ihn effektiv auszuführen.

Erkennung von Obfuscation

Die Erkennung von verschleiertem Code ist der erste Schritt im De-Obfuscation-Prozess. Zu den wichtigsten Indikatoren gehören:

  • Das Fehlen oder Verschleiern von Zeichenketten in Java und Android, was auf eine Zeichenketten-Verschleierung hinweisen kann.

  • Das Vorhandensein von Binärdateien im Assets-Verzeichnis oder Aufrufe von DexClassLoader, die auf Code-Entpackung und dynamisches Laden hinweisen.

  • Die Verwendung von nativen Bibliotheken zusammen mit nicht identifizierbaren JNI-Funktionen, was auf eine mögliche Verschleierung nativer Methoden hinweist.

Dynamische Analyse in der De-Obfuscation

Durch die Ausführung des Codes in einer kontrollierten Umgebung ermöglicht die dynamische Analyse die Beobachtung des Verhaltens des verschleierten Codes in Echtzeit. Diese Methode ist besonders effektiv, um die Funktionsweise komplexer Verschleierungsmuster aufzudecken, die darauf abzielen, die eigentliche Absicht des Codes zu verbergen.

Anwendungen der dynamischen Analyse

  • Laufzeitentschlüsselung: Viele Verschleierungstechniken beinhalten die Verschlüsselung von Zeichenketten oder Code-Segmenten, die erst zur Laufzeit entschlüsselt werden. Durch die dynamische Analyse können diese verschlüsselten Elemente zum Zeitpunkt der Entschlüsselung erfasst werden, um ihre wahre Form aufzudecken.

  • Erkennung von Obfuscationstechniken: Durch die Überwachung des Verhaltens der Anwendung kann die dynamische Analyse helfen, spezifische verwendete Obfuscationstechniken zu identifizieren, wie z.B. Code-Virtualisierung, Packer oder dynamische Code-Generierung.

  • Aufdecken versteckter Funktionalitäten: Verschleierter Code kann versteckte Funktionalitäten enthalten, die allein durch statische Analyse nicht offensichtlich sind. Die dynamische Analyse ermöglicht die Beobachtung aller Code-Pfade, einschließlich der bedingt ausgeführten Pfade, um solche versteckten Funktionalitäten aufzudecken.

Referenzen und weiterführende Literatur

  • BlackHat USA 2018: "Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library" [Video]

  • Dieser Vortrag behandelt die Reverse Engineering einer der komplexesten Anti-Analyse-Native-Bibliotheken, die ich bei einer Android-Anwendung gesehen habe. Er behandelt hauptsächlich Verschleierungstechniken im nativen Code.

  • REcon 2019: "The Path to the Payload: Android Edition" [Video]

  • Dieser Vortrag behandelt eine Reihe von Verschleierungstechniken, ausschließlich im Java-Code, die von einem Android-Botnetz verwendet wurden, um sein Verhalten zu verbergen.

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated