Torna agli aggiornamenti
New releaseSep 10, 2026

jadx-magic-strings v1.0.3-dev

Plugin JADX che estrae nomi di metodi, riferimenti alle classi e percorsi di file sorgente dalle costanti di stringa presenti nei file DEX e nel codice Android decompilato.

Condividi

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:

  1. Riferimenti a file sorgente: Rileva riferimenti a file sorgente Java/Kotlin (.java, .kt, .kts, .scala, .groovy) nelle costanti stringa
  2. Candidati nomi di metodo: Identifica potenziali nomi di metodo dalle stringhe utilizzando pattern regex
  3. 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

  1. Clona il repository:

    git clone https://github.com/0rshemesh/jadx-magic-strings.git
    cd jadx-magic-strings
    
  2. Compila il plugin:

    ./gradlew build
    
  3. 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:

./gradlew build

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

  1. Installa il plugin (vedi sezione Installazione sopra)

  2. Avvia la GUI di JADX:

    jadx-gui
    
  3. Apri il tuo file APK/DEX nella GUI di JADX

  4. Attendi il completamento della decompilazione (il plugin viene eseguito automaticamente dopo la decompilazione)

  5. 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

Esempio del Plugin Magic Strings

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

  1. Dopo la decompilazione, il plugin analizza tutti i metodi in tutte le classi
  2. Estrae le costanti stringa dai nodi delle istruzioni (istruzioni CONST_STR)
  3. 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
  4. 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.

Categorie