Plugin JADX Magic Strings
Un plugin per JADX che estrae informazioni dalle costanti stringa.
Caratteristiche
Il plugin estrae e analizza le costanti stringa dal codice decompilato per trovare:
- Riferimenti a file sorgente: Rileva riferimenti a file sorgente Java/Kotlin (
.java, .kt, .kts, .scala, .groovy) nelle costanti stringa
- Candidati nomi di metodo: Identifica potenziali nomi di metodo dalle stringhe utilizzando pattern regex
- Analisi delle stringhe: Raccoglie tutte le costanti stringa con i relativi metodi e classi
Installazione
Opzione 1: Installazione da GitHub (Consigliata)
Se questo plugin è pubblicato su GitHub, puoi installarlo direttamente:
jadx plugins --install "github:0rshemesh:jadx-magic-strings"
Opzione 2: Compilazione e installazione dal sorgente
-
Clona il repository:
git clone https://github.com/0rshemesh/jadx-magic-strings.git
cd jadx-magic-strings
-
Compila il plugin:
-
Installa il plugin:
jadx plugins --install-jar build/libs/jadx-magic-strings-1.0.1.jar
Oppure copia manualmente il JAR nella directory dei plugin di JADX:
- Linux/Mac:
~/.local/share/jadx/plugins/dropins/
- Windows:
%APPDATA%\jadx\plugins\dropins\
Compilazione del Plugin
Il plugin può essere compilato in modo indipendente:
Il JAR del plugin verrà creato in:
build/libs/jadx-magic-strings-1.0.1.jar
Requisiti:
- Java 11 o superiore
- Gradle (oppure usa il wrapper Gradle incluso:
./gradlew)
Utilizzo
Nella GUI di JADX
-
Installa il plugin (vedi sezione Installazione sopra)
-
Avvia la GUI di JADX:
-
Apri il tuo file APK/DEX nella GUI di JADX
-
Attendi il completamento della decompilazione (il plugin viene eseguito automaticamente dopo la decompilazione)
-
Accedi al plugin:
- Vai al menu Plugins nella barra dei menu
- Clicca su "Magic Strings: Show Results"
- Si aprirà una finestra di dialogo con più schede:
- Source Files: Vista ad albero che mostra i percorsi dei file sorgente rilevati e i loro riferimenti
- Top Candidates + Source Files: Vista combinata dei candidati metodo con punteggio più alto raggruppati per file sorgente
- Method Candidates (Filtered): Tabella che mostra i candidati nomi di metodo filtrati
- All Strings: Tabella che mostra tutte le costanti stringa estratte

Nella CLI di JADX
Il plugin viene eseguito automaticamente durante la decompilazione, ma non esiste un'interfaccia CLI per visualizzare i risultati. Usa la GUI per vedere le informazioni estratte.
Come Funziona
- Dopo la decompilazione, il plugin analizza tutti i metodi in tutte le classi
- Estrae le costanti stringa dai nodi delle istruzioni (istruzioni CONST_STR)
- Analizza le stringhe utilizzando pattern regex:
- File sorgente: Individua percorsi che terminano con
.java, .kt, ecc.
- Nomi di metodo: Individua pattern camelCase che somigliano a nomi di metodo
- Memorizza i risultati in una struttura dati accessibile tramite la GUI
Esempi di Casi d'Uso
- Reverse Engineering: Trova i nomi originali dei file sorgente che potrebbero rivelare la struttura del progetto
- Deoffuscamento: Identifica i nomi dei metodi da stringhe di debug o messaggi di errore
- Analisi del codice: Comprendi le relazioni tra stringhe e metodi
- Analisi malware: Estrai stringhe interessanti che potrebbero indicare funzionalità
Limitazioni
- Il plugin funziona solo dopo il completamento della decompilazione
- L'estrazione delle stringhe dipende dal codice decompilato (alcuni codici offuscati potrebbero non avere stringhe accessibili)
- Il rilevamento dei nomi di metodo utilizza euristiche e potrebbe produrre falsi positivi
- Il rilevamento dei file sorgente si basa su stringhe contenenti percorsi di file (non sempre presenti)
Risoluzione dei Problemi
Il plugin non appare nel menu:
- Assicurati che il plugin sia installato correttamente
- Controlla che il JAR del plugin sia nella directory dei plugin
- Verifica che il file di servizio esista:
META-INF/services/jadx.api.plugins.JadxPlugin
- Assicurati di usare una versione compatibile di JADX (1.5.2+)
Nessun risultato mostrato:
- Il codice potrebbe non contenere stringhe pertinenti
- Prova a decompilare un file APK/DEX diverso
- Alcuni codici offuscati potrebbero non avere stringhe estraibili
Errori di compilazione:
- Assicurati di usare Java 11 o superiore
- Esegui
./gradlew clean build per ricompilare tutto
- Controlla che la versione di JADX in
build.gradle.kts corrisponda a una versione disponibile su Maven Central
Autore
Creato e mantenuto da 0rshemesh.
Licenza
Questo plugin è concesso in licenza secondo la Apache License 2.0. Consulta il file LICENSE per i dettagli.