
Fuzzy-Vergleichstool zur Deobfuskation von Android-APKs durch Identifikation umbenannter Funktionen über verschiedene Versionen hinweg, Erstellung von Mapping-Dateien und interaktiven HTML-Berichten für Malware- und Schwachstellenanalyse.
🤖 Obfu[DE]scate: Ein Tool zur De-Obfuskation und zum Vergleich von Android APKs. 📱
Obfu[DE]scate ist ein Python-Tool, das den Prozess der De-Obfuskation und des Vergleichs von zwei Versionen einer Android-APK vereinfacht – selbst wenn die Funktionen im Rahmen der Obfuskation umbenannt wurden. Mit einer Fuzzy-Vergleichslogik kann Obfu[DE]scate Ähnlichkeiten zwischen Funktionen identifizieren und Ihnen helfen, Änderungen zwischen APK-Versionen aufzudecken.
Der Einstieg in Obfu[DE]scate ist einfach! Befolgen Sie diese Schritte:
pip install -r REQUIREMENTS.txt
Obfu[DE]scate wurde unter Windows 11 getestet, sollte aber auch auf anderen Systemen funktionieren.
Obfu[DE]scate bietet mehrere Befehlszeilenoptionen zur Anpassung seines Verhaltens:
Um zwei APK-Dateien zu vergleichen, führen Sie Obfu[DE]scate einfach mit folgendem Befehl aus:
python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"
Im obigen Beispiel überprüft Obfu[DE]scate alle Funktionen in der APK old_example.apk unter dem Klassenpfad com.example.path und vergleicht sie mit allen Funktionen, die unter demselben Klassenpfad in new_example.apk gefunden werden.
Obfu[DE]scate erzeugt zwei Ausgabedateien: eine Mapping-Datei im Format einer durch Zeilenumbrüche getrennten Liste und eine interaktive HTML-Datei. Diese Ausgabedateien enthalten:
com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a .
Obfu[DE]scate ist ein Open-Source-Projekt und freut sich über Beiträge aus der Community. Wenn Sie zu Obfu[DE]scate beitragen möchten, befolgen Sie bitte diese Richtlinien:
Obfu[DE]scate folgt dem Verhaltenskodex des Contributor Covenant. Bitte lesen Sie. und halten Sie sich an diesen Verhaltenskodex, wenn Sie zu Obfu[DE]scate beitragen.
Wenn Sie einen Fehler entdecken oder einen Vorschlag für eine neue Funktion haben, eröffnen Sie bitte ein Issue im GitHub-Repository. Bitte geben Sie so viele Details wie möglich an, einschließlich Schritten zur Reproduktion des Fehlers oder einer klaren Beschreibung der vorgeschlagenen Funktion. Ihr Feedback ist wertvoll und wird dazu beitragen, Obfu[DE]scate für alle zu verbessern.
Dieses Tool wäre ohne APKTool nicht möglich! Zweitens verwenden viele der Beispiele in dieser README die Chess.com-App als Basis, schauen Sie hier vorbei.
| Shorthand | Parameter | Beschreibung | Erforderlich |
|---|
| -a1 | apk_file_path_1 | Der Pfad zur ursprünglichen APK. Dies ist die APK, mit der die zweite APK verglichen wird (d.h. eine ältere Version der APK). | True |
| -a2 | apk_file_path_2 | Der Pfad zur neueren APK. Die Ausgabe zeigt Änderungen zwischen APK 1 und dieser APK. | True |
| -cp | class_path | Ein Pfad in umgekehrter Domain-Notation, der zum Filtern der überprüften Funktionen verwendet wird (z.B. com.example.class angeben, um nur Funktionen in diesem Pfad zu vergleichen). | False |
| -o | output_dir | Ein Verzeichnis, in dem die Ausgabe-Mapping, HTML und disassemblierte APKs gespeichert werden. | False |
| -apktool | apk_tool_path | Falls APKTool nicht in Ihrem Pfad ist, verwenden Sie diesen Parameter, um ObfuDeScate mitzuteilen, wo sich APKTool befindet. | False |