JADX Magic Strings Plugin
Ein JADX-Plugin, das Informationen aus String-Konstanten extrahiert.
Funktionen
Das Plugin extrahiert und analysiert String-Konstanten aus dekompiliertem Code, um Folgendes zu finden:
- Quellverweise: Erkennt Verweise auf Java/Kotlin-Quelldateien (
.java, .kt, .kts, .scala, .groovy) in String-Konstanten
- Methodennamen-Kandidaten: Identifiziert potenzielle Methodennamen aus Strings mithilfe von Regex-Mustern
- String-Analyse: Sammelt alle String-Konstanten mit ihren zugehörigen Methoden und Klassen
Installation
Option 1: Von GitHub installieren (empfohlen)
Wenn dieses Plugin auf GitHub veröffentlicht ist, können Sie es direkt installieren:
jadx plugins --install "github:0rshemesh:jadx-magic-strings"
Option 2: Aus dem Quellcode erstellen und installieren
-
Repository klonen:
git clone https://github.com/0rshemesh/jadx-magic-strings.git
cd jadx-magic-strings
-
Plugin erstellen:
-
Plugin installieren:
jadx plugins --install-jar build/libs/jadx-magic-strings-1.0.1.jar
Oder kopieren Sie die JAR manuell in das JADX-Plugins-Verzeichnis:
- Linux/Mac:
~/.local/share/jadx/plugins/dropins/
- Windows:
%APPDATA%\jadx\plugins\dropins\
Plugin erstellen
Das Plugin kann unabhängig erstellt werden:
Die Plugin-JAR wird erstellt unter:
build/libs/jadx-magic-strings-1.0.1.jar
Voraussetzungen:
- Java 11 oder höher
- Gradle (oder den enthaltenen Gradle-Wrapper verwenden:
./gradlew)
Verwendung
In der JADX-GUI
-
Plugin installieren (siehe Installationsabschnitt oben)
-
JADX-GUI ausführen:
-
Öffnen Sie Ihre APK/DEX-Datei in der JADX-GUI
-
Warten Sie auf den Abschluss der Dekompilierung (das Plugin wird automatisch nach der Dekompilierung ausgeführt)
-
Auf das Plugin zugreifen:
- Gehen Sie zum Plugins-Menü in der Menüleiste
- Klicken Sie auf "Magic Strings: Show Results"
- Ein Dialogfenster mit mehreren Registerkarten wird geöffnet:
- Quelldateien: Baumansicht mit erkannten Quelldateipfaden und deren Verweisen
- Top-Kandidaten + Quelldateien: Kombinierte Ansicht der am höchsten bewerteten Methodennamen-Kandidaten, gruppiert nach Quelldatei
- Methodenkandidaten (gefiltert): Tabelle mit gefilterten Methodennamen-Kandidaten
- Alle Strings: Tabelle mit allen extrahierten String-Konstanten

In der JADX-CLI
Das Plugin wird während der Dekompilierung automatisch ausgeführt, aber es gibt keine CLI-Schnittstelle zum Anzeigen der Ergebnisse. Verwenden Sie die GUI, um die extrahierten Informationen zu sehen.
Funktionsweise
- Nach der Dekompilierung durchsucht das Plugin alle Methoden in allen Klassen
- Extrahiert String-Konstanten aus Anweisungsknoten (CONST_STR-Anweisungen)
- Analysiert Strings mithilfe von Regex-Mustern:
- Quelldateien: Entspricht Dateipfaden, die auf
.java, .kt usw. enden.
- Methodennamen: Entspricht CamelCase-Mustern, die wie Methodennamen aussehen
- Speichert Ergebnisse in einer Datenstruktur, die über die GUI zugänglich ist
Beispielhafte Anwendungsfälle
- Reverse Engineering: Finden Sie ursprüngliche Quelldateinamen, die die Projektstruktur offenbaren könnten
- Entschleierung: Identifizieren Sie Methodennamen aus Debug-Strings oder Fehlermeldungen
- Code-Analyse: Verstehen Sie die Beziehungen zwischen Strings und Methoden
- Malware-Analyse: Extrahieren Sie interessante Strings, die auf Funktionalität hinweisen könnten
Einschränkungen
- Das Plugin funktioniert nur, nachdem die Dekompilierung abgeschlossen ist
- Die String-Extraktion hängt vom dekompilierten Code ab (bei manchem obfuskiertem Code sind möglicherweise keine Strings zugänglich)
- Die Erkennung von Methodennamen verwendet Heuristiken und kann Fehlalarme produzieren
- Die Erkennung von Quelldateien ist auf Strings angewiesen, die Dateipfade enthalten (nicht immer vorhanden)
Fehlerbehebung
Plugin erscheint nicht im Menü:
- Stellen Sie sicher, dass das Plugin korrekt installiert ist
- Überprüfen Sie, ob sich die Plugin-JAR im Plugins-Verzeichnis befindet
- Überprüfen Sie, ob die Service-Datei existiert:
META-INF/services/jadx.api.plugins.JadxPlugin
- Stellen Sie sicher, dass Sie eine kompatible JADX-Version verwenden (1.5.2+)
Keine Ergebnisse angezeigt:
- Der Code könnte keine relevanten Strings enthalten
- Versuchen Sie, eine andere APK/DEX-Datei zu dekompilieren
- Manch obfuskieter Code hat möglicherweise keine extrahierbaren Strings
Build-Fehler:
- Stellen Sie sicher, dass Sie Java 11 oder höher verwenden
- Führen Sie
./gradlew clean build aus, um alles neu zu erstellen
- Überprüfen Sie, ob die JADX-Version in
build.gradle.kts mit einer auf Maven Central verfügbaren Version übereinstimmt
Autor
Erstellt und gewartet von 0rshemesh.
Lizenz
Dieses Plugin ist unter der Apache License 2.0 lizenziert. Siehe die Datei LICENSE für Details.