Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
jadx — Strumento da riga di comando e GUI per decompilare file Android Dex e APK in codice sorgente Java leggibile, con decodifica delle risorse, deoffuscamento e capacità di debug Smali. | Kitploit
Strumenti/GitHubGitHub/skylot/jadx
Sicurezza AndroidAnalisi StaticaPentesting di App MobiliReverse EngineeringDebuggerMobile ForensicsSicurezza MobileAnalisi di BinariTop in Sicurezza Android n.2Top in Pentesting di App Mobili n.4
50.0k5.7k249h 8m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Top in Mobile Forensics n.10
Top in Sicurezza Mobile n.4
GitHubskylot/jadx

jadx

Strumento da riga di comando e GUI per decompilare file Android Dex e APK in codice sorgente Java leggibile, con decodifica delle risorse, deoffuscamento e capacità di debug Smali.

Vedi Repository

JADX

Build status GitHub contributors GitHub all releases GitHub release (latest by SemVer) Latest release Maven Central Java 11+ License

jadx - Decompilatore Dex in Java

Strumenti da riga di comando e GUI per produrre codice sorgente Java da file Android Dex e Apk

[!WARNING] Si prega di notare che nella maggior parte dei casi jadx non può decompilare il 100% del codice, quindi si verificheranno errori.
Consulta la guida alla risoluzione dei problemi per soluzioni alternative.

Caratteristiche principali:

  • decompila il bytecode Dalvik in codice Java da file APK, dex, aar, aab e zip
  • decodifica AndroidManifest.xml e altre risorse da resources.arsc
  • deobfuscator incluso

Caratteristiche di jadx-gui:

  • visualizza il codice decompilato con sintassi evidenziata
  • salta alla dichiarazione
  • trova utilizzi
  • ricerca full text
  • debugger smali, controlla la pagina wiki per configurazione e utilizzo

I tasti di scelta rapida di Jadx-gui si trovano qui

Vedi queste funzionalità in azione qui: panoramica delle funzionalità di jadx-gui

Download

  • release da github: Latest release
  • ultima build instabile GitHub commits since tagged version (branch)

Dopo il download, estrai il file zip, vai alla directory bin ed esegui:

  • jadx - versione da riga di comando
  • jadx-gui - versione con interfaccia grafica

Su Windows esegui i file .bat con doppio clic
Nota: assicurati di avere installato Java 11 o versione successiva a 64 bit. Per Windows, puoi scaricarlo da oracle.com (seleziona x64 Installer).

Install

  • Arch Linux Arch Linux package AUR Version
    root@kitploit:~
    sudo pacman -S jadx
    
  • macOS homebrew version
    root@kitploit:~
    brew install jadx
    
  • Flathub Flathub Version
    root@kitploit:~
    flatpak install flathub com.github.skylot.jadx
    

Use jadx as a library

Puoi usare jadx nei tuoi progetti Java, controlla i dettagli sulla pagina wiki

Build from source

JDK 17 o successivo deve essere installato:

root@kitploit:~
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

(su Windows, usa gradlew.bat invece di ./gradlew)

Gli script per eseguire jadx saranno posizionati in build/jadx/bin e anche impacchettati in build/jadx-<versione>.zip

Usage

root@kitploit:~
jadx[-gui] [command] [options] <input files> (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab, .xapk, .apkm, .jadx.kts)
comandi (usa '<comando> --help' per le opzioni del comando):
  plugins	  - gestisci plugin jadx

opzioni:
  -d, --output-dir                              - directory di output
  -ds, --output-dir-src                         - directory di output per i sorgenti
  -dr, --output-dir-res                         - directory di output per le risorse
  -r, --no-res                                  - non decodificare le risorse
  -s, --no-src                                  - non decompilare il codice sorgente
  -j, --threads-count                           - numero di thread di elaborazione, default: 16
  --single-class                                - decompila una singola classe, nome completo, raw o alias
  --single-class-output                         - file o directory per scrivere se si decompila una singola classe
  --output-format                               - può essere 'java' o 'json', default: java
  -e, --export-gradle                           - salva come progetto gradle (imposta '--export-gradle-type' su 'auto')
  --export-gradle-type                          - template del progetto Gradle per l'esportazione:
                                                   'auto' - rileva automaticamente
                                                   'android-app' - Applicazione Android (apk)
                                                   'android-library' - Libreria Android (aar)
                                                   'simple-java' - Java semplice
  -m, --decompilation-mode                      - modalità di output del codice:
                                                   'auto' - prova le migliori opzioni (default)
                                                   'restructure' - ripristina la struttura del codice (codice Java normale)
                                                   'simple' - istruzioni semplificate (lineari, con goto)
                                                   'fallback' - istruzioni grezze senza modifiche
  --show-bad-code                               - mostra codice incoerente (decompilato in modo errato)
  --no-xml-pretty-print                         - non abbellire XML
  --no-imports                                  - disabilita l'uso di import, scrive sempre il nome completo del pacchetto
  --no-debug-info                               - disabilita l'analisi e l'elaborazione delle informazioni di debug
  --add-debug-lines                             - aggiungi commenti con i numeri di riga di debug se disponibili
  --no-inline-anonymous                         - disabilita l'inline delle classi anonime
  --no-inline-methods                           - disabilita l'inline dei metodi
  --no-move-inner-classes                       - disabilita lo spostamento delle classi interne nel genitore
  --no-inline-kotlin-lambda                     - disabilita l'inline per le lambda Kotlin
  --no-finally                                  - non estrarre il blocco finally
  --no-restore-switch-over-string               - non ripristinare switch su stringa
  --no-replace-consts                           - non sostituire il valore costante con il campo costante corrispondente
  --escape-unicode                              - escapa i caratteri non latini nelle stringhe (con \u)
  --respect-bytecode-access-modifiers           - non modificare i modificatori di accesso originali
  --mappings-path                               - file o directory di mappature deofuscation. Formati consentiti: Tiny e Tiny v2 (entrambi '.tiny'), Enigma (.mapping) o directory Enigma
  --mappings-mode                               - imposta la modalità di gestione del file di mappatura deofuscation:
                                                   'read' - solo lettura, l'utente può sempre salvare manualmente (default)
                                                   'read-and-autosave-every-change' - lettura e salvataggio automatico dopo ogni modifica
                                                   'read-and-autosave-before-closing' - lettura e salvataggio automatico prima di uscire dall'applicazione o chiudere il progetto
                                                   'ignore' - non leggere né salvare (può essere usato per saltare il caricamento dei file di mappatura referenziati nel file di progetto)
  --deobf                                       - attiva la deoffuscazione
  --deobf-min                                   - lunghezza minima del nome, rinominato se più corto, default: 3
  --deobf-max                                   - lunghezza massima del nome, rinominato se più lungo, default: 64
  --deobf-whitelist                             - elenco separato da spazi di classi (nome completo) e pacchetti (terminano con '.*') da escludere dalla deoffuscazione, default: android.support.v4.* android.support.v7.* android.support.v4.os.* android.support.annotation.Px androidx.core.os.* androidx.annotation.Px
  --deobf-cfg-file                              - file di mappatura deoffuscazione usato per i nomi generati automaticamente da JADX (nel formato file JOBF), default: stessa directory e nome del file di input con estensione '.jobf'
  --deobf-cfg-file-mode                         - imposta la modalità di gestione del file di mappatura deoffuscazione dei nomi generati automaticamente da JADX:
                                                   'read' - legge se trovato, non salva (default)
                                                   'read-or-save' - legge se trovato, salva altrimenti (non sovrascrive)
                                                   'overwrite' - non leggere, salva sempre
                                                   'ignore' - non leggere e non salvare
  --deobf-res-name-source                       - migliore fonte di nomi per le risorse:
                                                   'auto' - seleziona automaticamente il nome migliore (default)
                                                   'resources' - usa i nomi delle risorse
                                                   'code' - usa i nomi dei campi della classe R
  --use-source-name-as-class-name-alias         - usa il nome sorgente come alias del nome della classe:
                                                   'always' - usa sempre il nome sorgente se disponibile
                                                   'if-better' - usa il nome sorgente se sembra migliore di quello attuale
                                                   'never' - non usare mai il nome sorgente, anche se disponibile
  --source-name-repeat-limit                    - consente di utilizzare il nome sorgente se appare meno di un numero limite, default: 10
  --use-kotlin-methods-for-var-names            - usa metodi intrinseci Kotlin per rinominare le variabili, valori: disable, apply, apply-and-hide, default: apply
  --use-headers-for-detect-resource-extensions  - Usa gli header per rilevare le estensioni delle risorse se la risorsa è offuscata
  --rename-flags                                - opzioni di correzione (elenco separato da virgole di):
                                                   'case' - risolve problemi di sensibilità alle maiuscole/minuscole (secondo l'opzione --fs-case-sensitive),
                                                   'valid' - rinomina gli identificatori Java per renderli validi,
                                                   'printable' - rimuove i caratteri non stampabili dagli identificatori,
                                                  o singolo 'none' - per disabilitare tutte le rinomine
                                                  o singolo 'all' - per abilitare tutto (default)
  --integer-format                              - come vengono visualizzati gli interi:
                                                   'auto' - seleziona automaticamente (default)
                                                   'decimal' - usa decimale
                                                   'hexadecimal' - usa esadecimale
  --type-update-limit                           - conteggio limite di aggiornamento del tipo (per istruzione), default: 10
  --fs-case-sensitive                           - tratta il filesystem come sensibile alle maiuscole/minuscole, false per default
  --cfg                                         - salva il grafo di flusso di controllo dei metodi in file dot
  --raw-cfg                                     - salva il grafo di flusso di controllo dei metodi (usa istruzioni grezze)
  --call-graph                                  - salva il grafo delle chiamate dell'app nel formato: 'dot' o 'json', default: none
  -f, --fallback                                - imposta '--decompilation-mode' su 'fallback' (deprecato)
  --use-dx                                      - usa dx/d8 per convertire il bytecode Java
  --comments-level                              - imposta il livello dei commenti del codice, valori: error, warn, info, debug, user-only, none, default: info
  --log-level                                   - imposta il livello di log, valori: quiet, progress, error, warn, info, debug, default: progress
  -v, --verbose                                 - output dettagliato (imposta --log-level a DEBUG)
  -q, --quiet                                   - disattiva l'output (imposta --log-level a QUIET)
  --disable-plugins                             - elenco separato da virgole di ID plugin da disabilitare
  --config <config-ref>                         - carica configurazione da file, <config-ref> può essere:
                                                   percorso del file '.json'
                                                   nome breve - usa il file con questo nome dalla directory di configurazione
                                                   'none' - per disabilitare il caricamento della configurazione
  --save-config <config-ref>                    - salva le opzioni correnti nel file di configurazione ed esci, <config-ref> può essere:
                                                   vuoto - per la configurazione predefinita
                                                   percorso del file '.json'
                                                   nome breve - il file verrà salvato nella directory di configurazione
  --print-files                                 - stampa i file e le directory usati da jadx (config, cache, temp)
  --version                                     - stampa la versione di jadx
  -h, --help                                    - stampa questo aiuto

Opzioni plugin (-P<nome>=<valore>):
  dex-input: Carica file .dex e .apk
    - dex-input.verify-checksum                 - verifica il checksum del file dex prima del caricamento, valori: [yes, no], default: yes
  java-convert: Converti file .class, .jar e .aar in dex
    - java-convert.mode                         - modalità di conversione, valori: [dx, d8, both], default: both
    - java-convert.d8-desugar                   - usa desugar in d8, valori: [yes, no], default: no
  kotlin-metadata: Usa l'annotazione kotlin.Metadata per la generazione del codice
    - kotlin-metadata.class-alias               - rinomina alias classe, valori: [yes, no], default: yes
    - kotlin-metadata.method-args               - rinomina argomenti funzione, valori: [yes, no], default: yes
    - kotlin-metadata.fields                    - rinomina campi, valori: [yes, no], default: yes
    - kotlin-metadata.companion                 - rinomina oggetto companion, valori: [yes, no], default: yes
    - kotlin-metadata.data-class                - aggiungi modificatore data class, valori: [yes, no], default: yes
    - kotlin-metadata.to-string                 - rinomina campi usando toString, valori: [yes, no], default: yes
    - kotlin-metadata.getters                   - rinomina getter semplici con nomi di campo, valori: [yes, no], default: yes
  kotlin-smap: Usa l'annotazione kotlin.SourceDebugExtension per rinominare alias classe
    - kotlin-smap.class-alias-source-dbg        - rinomina alias classe da SourceDebugExtension, valori: [yes, no], default: no
  rename-mappings: supporto varie mappature
    - rename-mappings.format                    - formato mappatura, valori: [AUTO, TINY_FILE, TINY_2_FILE, ENIGMA_FILE, ENIGMA_DIR, PROGUARD_FILE, SRG_FILE, XSRG_FILE, JAM_FILE, CSRG_FILE, TSRG_FILE, TSRG_2_FILE, INTELLIJ_MIGRATION_MAP_FILE, RECAF_SIMPLE_FILE, JOBF_FILE], default: AUTO
    - rename-mappings.invert                    - inverte mappatura al caricamento, valori: [yes, no], default: no
  smali-input: Carica file .smali
    - smali-input.api-level                     - livello API Android, default: 27

Variabili d'ambiente:
  JADX_DISABLE_XML_SECURITY - imposta su 'true' per disabilitare tutti i controlli di sicurezza per i file XML
  JADX_DISABLE_ZIP_SECURITY - imposta su 'true' per disabilitare tutti i controlli di sicurezza per i file zip
  JADX_ZIP_MAX_ENTRIES_COUNT - numero massimo consentito di voci nei file zip (default: 100.000)
  JADX_CONFIG_DIR - directory di configurazione personalizzata, usa quella di sistema per default
  JADX_CACHE_DIR - directory cache personalizzata, usa quella di sistema per default
  JADX_TMP_DIR - directory temporanea personalizzata, usa quella di sistema per default

Esempi:
  jadx -d out classes.dex
  jadx --rename-flags "none" classes.dex
  jadx --rename-flags "valid, printable" classes.dex
  jadx --log-level ERROR app.apk
  jadx -Pdex-input.verify-checksum=no app.apk

Queste opzioni funzionano anche in jadx-gui se eseguito da riga di comando e sovrascrivono le opzioni dalla finestra delle preferenze.

Utilizzo per il comando plugins

root@kitploit:~
usage: plugins [options]
opzioni:
  -i, --install <locationId>      - installa il plugin con locationId
  -j, --install-jar <path-to.jar> - installa il plugin dal file jar
  -l, --list                      - elenca i plugin installati
  -a, --available                 - elenca i plugin disponibili da jadx-plugins-list (noto come marketplace)
  -u, --update                    - aggiorna i plugin installati
  --uninstall <pluginId>          - disinstalla il plugin con pluginId
  --disable <pluginId>            - disabilita il plugin con pluginId
  --enable <pluginId>             - abilita il plugin con pluginId
  --list-all                      - elenca tutti i plugin inclusi quelli in bundle e dropins
  --list-versions <locationId>    - recupera le ultime versioni del plugin da locationId (scaricherà tutti gli artefatti, limitato a 10)
  -h, --help                      - stampa questo aiuto

Risoluzione dei problemi

Consulta la pagina wiki Domande frequenti per la risoluzione dei problemi

Contribuire

Per supportare questo progetto puoi:

  • Inviare pensieri su nuove funzionalità/ottimizzazioni importanti per te
  • Segnalare problemi di decompilazione, leggi prima di procedere: Apri issue
  • Aprire una pull request, segui queste regole: Processo di Pull Request

Concesso in licenza secondo la licenza Apache 2.0

Scarica lo strumento