hacktricks/mobile-pentesting/android-app-pentesting/manual-deobfuscation.md
2024-02-10 15:36:32 +00:00

64 lines
6.5 KiB
Markdown

<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
</details>
## 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
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
* BlackHat USA 2018: "Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library" \[[Video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* 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](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Dieser Vortrag behandelt eine Reihe von Verschleierungstechniken, ausschließlich im Java-Code, die von einem Android-Botnetz verwendet wurden, um sein Verhalten zu verbergen.
<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
</details>