Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
jadx — Outil en ligne de commande et avec interface graphique pour décompiler les fichiers Android Dex et APK en code source Java lisible, avec décodage des ressources, désambiguïsation, et capacités de débogage Smali. | Kitploit
Outils/GitHubGitHub/skylot/jadx
Sécurité AndroidAnalyse StatiquePentesting d'Applications MobilesRétro-ingénierieDébogueursCriminalistique MobileSécurité MobileAnalyse de BinairesTop en Sécurité Android n°2Top en Pentesting d'Applications Mobiles n°4
50.0k5.7k24il y a 15h 33mVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Top en Criminalistique Mobile n°10
Top en Sécurité Mobile n°4
GitHubskylot/jadx

jadx

Outil en ligne de commande et avec interface graphique pour décompiler les fichiers Android Dex et APK en code source Java lisible, avec décodage des ressources, désambiguïsation, et capacités de débogage Smali.

Voir le dépôt

JADX

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

jadx - Décompilateur Dex vers Java

Outils en ligne de commande et GUI pour produire du code source Java à partir des fichiers Android Dex et Apk

[!WARNING] Veuillez noter que dans la plupart des cas, jadx ne peut pas décompiler 100 % du code, donc des erreurs se produiront.
Consultez le Guide de dépannage pour des solutions de contournement.

Fonctionnalités principales :

  • décompiler le bytecode Dalvik en code Java à partir des fichiers APK, dex, aar, aab et zip
  • décoder AndroidManifest.xml et d'autres ressources depuis resources.arsc
  • désébfuscateur inclus

Fonctionnalités de jadx-gui :

  • visualiser le code décompilé avec une syntaxe surlignée
  • accéder à la déclaration
  • rechercher les utilisations
  • recherche en texte intégral
  • débogueur smali, consultez la page wiki pour l'installation et l'utilisation

Les raccourcis claviers de jadx-gui se trouvent ici

Voir ces fonctionnalités en action ici : Aperçu des fonctionnalités de jadx-gui

Téléchargement

  • version stable depuis github: Latest release
  • dernière version instable GitHub commits since tagged version (branch)

Après téléchargement, décompressez le fichier zip, rendez-vous dans le répertoire bin et exécutez :

  • jadx - version en ligne de commande
  • jadx-gui - version avec interface graphique

Sous Windows, exécutez les fichiers .bat en double-cliquant
Remarque : assurez-vous d'avoir installé Java 11 ou une version ultérieure 64 bits. Pour Windows, vous pouvez le télécharger depuis oracle.com (sélectionnez l'installateur x64).

Installation

  • 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
    

Utiliser jadx comme bibliothèque

Vous pouvez utiliser jadx dans vos projets Java, consultez les détails sur la page wiki

Compiler à partir des sources

JDK 17 ou supérieur doit être installé :

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

(sous Windows, utilisez gradlew.bat au lieu de ./gradlew)

Les scripts pour exécuter jadx seront placés dans build/jadx/bin et également empaquetés dans build/jadx-<version>.zip

Utilisation

root@kitploit:~
jadx[-gui] [command] [options] <input files> (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab, .xapk, .apkm, .jadx.kts)
commandes (utilisez '<commande> --help' pour les options de commande) :
  plugins	  - gérer les plugins jadx

options:
  -d, --output-dir                              - répertoire de sortie
  -ds, --output-dir-src                         - répertoire de sortie pour les sources
  -dr, --output-dir-res                         - répertoire de sortie pour les ressources
  -r, --no-res                                  - ne pas décoder les ressources
  -s, --no-src                                  - ne pas décompiler le code source
  -j, --threads-count                           - nombre de threads de traitement, défaut : 16
  --single-class                                - décompiler une seule classe, nom complet, brut ou alias
  --single-class-output                         - fichier ou répertoire pour écrire si décompilation d'une seule classe
  --output-format                               - peut être 'java' ou 'json', défaut : java
  -e, --export-gradle                           - enregistrer en tant que projet gradle (définir '--export-gradle-type' sur 'auto')
  --export-gradle-type                          - modèle de projet Gradle pour l'exportation :
                                                   'auto' - détecter automatiquement
                                                   'android-app' - Application Android (apk)
                                                   'android-library' - Bibliothèque Android (aar)
                                                   'simple-java' - Java simple
  -m, --decompilation-mode                      - mode de sortie du code :
                                                   'auto' - essaie les meilleures options (défaut)
                                                   'restructure' - restaurer la structure du code (code Java normal)
                                                   'simple' - instructions simplifiées (linéaire, avec des goto)
                                                   'fallback' - instructions brutes sans modifications
  --show-bad-code                               - afficher le code incohérent (décompilé incorrectement)
  --no-xml-pretty-print                         - ne pas mettre en forme le XML
  --no-imports                                  - désactiver l'utilisation des imports, toujours écrire le nom complet du package
  --no-debug-info                               - désactiver l'analyse et le traitement des informations de débogage
  --add-debug-lines                             - ajouter des commentaires avec les numéros de ligne de débogage si disponibles
  --no-inline-anonymous                         - désactiver l'insertion en ligne des classes anonymes
  --no-inline-methods                           - désactiver l'insertion en ligne des méthodes
  --no-move-inner-classes                       - désactiver le déplacement des classes internes dans le parent
  --no-inline-kotlin-lambda                     - désactiver l'insertion en ligne pour les lambdas Kotlin
  --no-finally                                  - ne pas extraire le bloc finally
  --no-restore-switch-over-string               - ne pas restaurer le switch sur les chaînes
  --no-replace-consts                           - ne pas remplacer la valeur constante par le champ constant correspondant
  --escape-unicode                              - échapper les caractères non latins dans les chaînes (avec \u)
  --respect-bytecode-access-modifiers           - ne pas modifier les modificateurs d'accès d'origine
  --mappings-path                               - fichier ou répertoire de mappages de désébfuscation. Formats autorisés : Tiny et Tiny v2 (tous deux '.tiny'), Enigma (.mapping) ou répertoire Enigma
  --mappings-mode                               - définir le mode de gestion du fichier de mappage de désébfuscation :
                                                   'read' - simplement lire, l'utilisateur peut toujours sauvegarder manuellement (défaut)
                                                   'read-and-autosave-every-change' - lire et sauvegarder automatiquement après chaque modification
                                                   'read-and-autosave-before-closing' - lire et sauvegarder automatiquement avant de quitter l'application ou de fermer le projet
                                                   'ignore' - ne pas lire ni sauvegarder (peut être utilisé pour ignorer le chargement des fichiers de mappage référencés dans le fichier projet)
  --deobf                                       - activer la désébfuscation
  --deobf-min                                   - longueur minimale du nom, renommé si plus court, défaut : 3
  --deobf-max                                   - longueur maximale du nom, renommé si plus long, défaut : 64
  --deobf-whitelist                             - liste séparée par des espaces des classes (nom complet) et des packages (se terminant par '.*') à exclure de la désébfuscation, défaut : android.support.v4.* android.support.v7.* android.support.v4.os.* android.support.annotation.Px androidx.core.os.* androidx.annotation.Px
  --deobf-cfg-file                              - fichier de mappages de désébfuscation utilisé pour les noms générés automatiquement par JADX (au format de fichier JOBF), défaut : même répertoire et nom que le fichier d'entrée avec l'extension '.jobf'
  --deobf-cfg-file-mode                         - définir le mode de gestion du fichier de mappage de désébfuscation des noms générés automatiquement par JADX :
                                                   'read' - lire si trouvé, ne pas sauvegarder (défaut)
                                                   'read-or-save' - lire si trouvé, sinon sauvegarder (ne pas écraser)
                                                   'overwrite' - ne pas lire, toujours sauvegarder
                                                   'ignore' - ne pas lire et ne pas sauvegarder
  --deobf-res-name-source                       - meilleure source de noms pour les ressources :
                                                   'auto' - sélectionner automatiquement le meilleur nom (défaut)
                                                   'resources' - utiliser les noms des ressources
                                                   'code' - utiliser les noms des champs de la classe R
  --use-source-name-as-class-name-alias         - utiliser le nom source comme alias du nom de classe :
                                                   'always' - toujours utiliser le nom source s'il est disponible
                                                   'if-better' - utiliser le nom source s'il semble meilleur que le nom actuel
                                                   'never' - ne jamais utiliser le nom source, même s'il est disponible
  --source-name-repeat-limit                    - autoriser l'utilisation du nom source s'il apparaît moins d'un nombre limite, défaut : 10
  --use-kotlin-methods-for-var-names            - utiliser les méthodes intrinsèques de Kotlin pour renommer les variables, valeurs : disable, apply, apply-and-hide, défaut : apply
  --use-headers-for-detect-resource-extensions  - Utiliser les en-têtes pour détecter les extensions de ressources si la ressource est obfusquée
  --rename-flags                                - options de correction (liste séparée par des virgules) :
                                                   'case' - corriger les problèmes de sensibilité à la casse (selon l'option --fs-case-sensitive),
                                                   'valid' - renommer les identifiants Java pour les rendre valides,
                                                   'printable' - supprimer les caractères non imprimables des identifiants,
                                                  ou 'none' - pour désactiver tous les renommages
                                                  ou 'all' - pour tout activer (défaut)
  --integer-format                              - comment les entiers sont affichés :
                                                   'auto' - sélectionner automatiquement (défaut)
                                                   'decimal' - utiliser le décimal
                                                   'hexadecimal' - utiliser l'hexadécimal
  --type-update-limit                           - nombre limite de mises à jour de type (par instruction), défaut : 10
  --fs-case-sensitive                           - traiter le système de fichiers comme sensible à la casse, faux par défaut
  --cfg                                         - sauvegarder le graphe de flux de contrôle des méthodes dans un fichier dot
  --raw-cfg                                     - sauvegarder le graphe de flux de contrôle des méthodes (utiliser les instructions brutes)
  --call-graph                                  - sauvegarder le graphe d'appels de l'application au format : 'dot' ou 'json', défaut : none
  -f, --fallback                                - définir '--decompilation-mode' sur 'fallback' (obsolète)
  --use-dx                                      - utiliser dx/d8 pour convertir le bytecode Java
  --comments-level                              - définir le niveau des commentaires de code, valeurs : error, warn, info, debug, user-only, none, défaut : info
  --log-level                                   - définir le niveau de journalisation, valeurs : quiet, progress, error, warn, info, debug, défaut : progress
  -v, --verbose                                 - sortie verbeuse (définir --log-level sur DEBUG)
  -q, --quiet                                   - désactiver la sortie (définir --log-level sur QUIET)
  --disable-plugins                             - liste séparée par des virgules des identifiants de plugins à désactiver
  --config <config-ref>                         - charger la configuration depuis un fichier, <config-ref> peut être :
                                                   chemin vers un fichier '.json'
                                                   nom court - utilise le fichier portant ce nom depuis le répertoire de configuration
                                                   'none' - pour désactiver le chargement de la configuration
  --save-config <config-ref>                    - sauvegarder les options actuelles dans un fichier de configuration et quitter, <config-ref> peut être :
                                                   vide - pour la configuration par défaut
                                                   chemin vers un fichier '.json'
                                                   nom court - le fichier sera sauvegardé dans le répertoire de configuration
  --print-files                                 - afficher les fichiers et répertoires utilisés par jadx (config, cache, temp)
  --version                                     - afficher la version de jadx
  -h, --help                                    - afficher cette aide

Options des plugins (-P<nom>=<valeur>) :
  dex-input : Charger les fichiers .dex et .apk
    - dex-input.verify-checksum                 - vérifier la somme de contrôle du fichier dex avant le chargement, valeurs : [yes, no], défaut : yes
  java-convert : Convertir les fichiers .class, .jar et .aar en dex
    - java-convert.mode                         - mode de conversion, valeurs : [dx, d8, both], défaut : both
    - java-convert.d8-desugar                   - utiliser desugar dans d8, valeurs : [yes, no], défaut : no
  kotlin-metadata : Utiliser l'annotation kotlin.Metadata pour la génération de code
    - kotlin-metadata.class-alias               - renommer l'alias de classe, valeurs : [yes, no], défaut : yes
    - kotlin-metadata.method-args               - renommer les arguments de fonction, valeurs : [yes, no], défaut : yes
    - kotlin-metadata.fields                    - renommer les champs, valeurs : [yes, no], défaut : yes
    - kotlin-metadata.companion                 - renommer l'objet companion, valeurs : [yes, no], défaut : yes
    - kotlin-metadata.data-class                - ajouter le modificateur data class, valeurs : [yes, no], défaut : yes
    - kotlin-metadata.to-string                 - renommer les champs en utilisant toString, valeurs : [yes, no], défaut : yes
    - kotlin-metadata.getters                   - renommer les getters simples en noms de champs, valeurs : [yes, no], défaut : yes
  kotlin-smap : Utiliser l'annotation kotlin.SourceDebugExtension pour renommer l'alias de classe
    - kotlin-smap.class-alias-source-dbg        - renommer l'alias de classe depuis SourceDebugExtension, valeurs : [yes, no], défaut : no
  rename-mappings : prise en charge de divers mappages
    - rename-mappings.format                    - format de mappage, valeurs : [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], défaut : AUTO
    - rename-mappings.invert                    - inverser le mappage au chargement, valeurs : [yes, no], défaut : no
  smali-input : Charger les fichiers .smali
    - smali-input.api-level                     - niveau d'API Android, défaut : 27

Variables d'environnement :
  JADX_DISABLE_XML_SECURITY - définir sur 'true' pour désactiver toutes les vérifications de sécurité pour les fichiers XML
  JADX_DISABLE_ZIP_SECURITY - définir sur 'true' pour désactiver toutes les vérifications de sécurité pour les fichiers zip
  JADX_ZIP_MAX_ENTRIES_COUNT - nombre maximum autorisé d'entrées dans les fichiers zip (défaut : 100 000)
  JADX_CONFIG_DIR - répertoire de configuration personnalisé, utilise celui du système par défaut
  JADX_CACHE_DIR - répertoire de cache personnalisé, utilise celui du système par défaut
  JADX_TMP_DIR - répertoire temporaire personnalisé, utilise celui du système par défaut

Exemples :
  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

Ces options fonctionnent également dans jadx-gui lorsqu'il est exécuté en ligne de commande et remplacent les options de la boîte de dialogue des préférences

Utilisation de la commande `plugins`

usage: plugins [options] options: -i, --install - installer le plugin avec locationId -j, --install-jar <path-to.jar> - installer le plugin à partir d'un fichier jar -l, --list - lister les plugins installés -a, --available - lister les plugins disponibles depuis jadx-plugins-list (alias marketplace) -u, --update - mettre à jour les plugins installés --uninstall - désinstaller le plugin avec pluginId --disable - désactiver le plugin avec pluginId --enable - activer le plugin avec pluginId --list-all - lister tous les plugins, y compris les plugins intégrés et dropins --list-versions - récupérer les dernières versions du plugin depuis locationId (téléchargera tous les artefacts, limité à 10) -h, --help - afficher cette aide

root@kitploit:~


### Dépannage
Veuillez consulter la page wiki [FAQ de dépannage](https://github.com/skylot/jadx/wiki/Troubleshooting-Q&A)

### Contribuer
Pour soutenir ce projet, vous pouvez :
  - Partager vos idées sur les nouvelles fonctionnalités/optimisations qui sont importantes pour vous
  - Soumettre des problèmes de décompilation, veuillez lire avant de procéder : [Ouvrir un problème](https://github.com/skylot/jadx/blob/master/CONTRIBUTING.md#Open-Issue)
  - Ouvrir une pull request, veuillez suivre ces règles : [Processus de pull request](https://github.com/skylot/jadx/blob/master/CONTRIBUTING.md#Pull-Request-Process)

---------------------------------------
*Sous licence Apache 2.0*
Télécharger l’outil