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
pyjadx — Bindings Python pour JADX. | Kitploit
Outils/GitHubGitHub/amruth-sn/pyjadx
Sécurité AndroidAnalyse StatiqueAnalyse de CodeRétro-ingénierieSécurité MobileAnalyse de Binaires
GitHubamruth-sn/pyjadx

pyjadx

Bindings Python pour JADX.

Voir le dépôt
6il y a 5 moisPas encore vérifié

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

pyjadx

Bindings Python pour JADX via JPype. Décompilateur de fichiers APK et DEX Android en code source Java depuis Python.

root@kitploit:~
from pyjadx import Jadx

with Jadx("app.apk") as jadx:
    for cls in jadx.classes:
        print(cls.full_name)
        print(cls.code)

Pourquoi pyjadx ?

JADX est le principal décompilateur Android open-source — il produit un code source Java/Kotlin propre à partir du bytecode Dalvik, en préservant les hiérarchies de classes, les génériques, la gestion des exceptions et les annotations. pyjadx intègre cela dans Python sans surcharge de sous-processus : JADX s'exécute directement dans le processus via JPype.

Installation

root@kitploit:~
pip install pyjadx

Prérequis : JDK 11+ (les JAR de JADX sont téléchargés automatiquement lors de la première utilisation).

Démarrage rapide

root@kitploit:~
from pyjadx import Jadx

with Jadx("app.apk") as jadx:
    # All top-level classes (inner classes via cls.inner_classes)
    for cls in jadx.classes:
        print(cls.full_name, len(cls.methods), "methods")

    # Search by fully qualified name
    main = jadx.search_class("com.example.MainActivity")
    if main:
        print(main.code)

    # Method-level decompilation
    for method in main.methods:
        print(f"{method.name}: {method.code}")

    # Cross-references
    for method in main.methods:
        print(f"{method.name} called by: {[c.name for c in method.callers]}")

    # Package navigation
    for pkg in jadx.packages:
        print(pkg.name, len(pkg.classes), "classes")

Entrées supportées

FormatExemple
APKJadx("app.apk")
DEXJadx("classes.dex")
Multi-DEX APKGéré de manière transparente — toutes les classes fusionnées

Référence de l'API

Jadx(path, *, threads=None, mode="auto", code_cache=False)

Point d'entrée principal. Utilisez-le comme gestionnaire de contexte ou appelez load()/close() manuellement.

Propriétés :

Méthodes :

JavaClass

JavaMethod

JavaField

JavaPackage

Passerelle de sortie

Chaque wrapper expose son objet Java JADX sous-jacent via .java. Cela vous permet d'appeler toute API JADX que nous n'avons pas encore encapsulée :

root@kitploit:~
with Jadx("app.apk") as jadx:
    cls = jadx.search_class("com.example.Foo")
    # Call JADX Java API directly
    code_info = cls.java.getCodeInfo()

Coexistence JVM

pyjadx coexiste avec d'autres consommateurs JPype (par exemple, PyGhidra) dans le même processus. Si une JVM est déjà en cours d'exécution, pyjadx.start() ajoute les JAR JADX au classpath existant. Sinon, elle en démarre une.

root@kitploit:~
import pyghidra
pyghidra.start()  # starts JVM for Ghidra

import pyjadx
pyjadx.start()    # adds JADX JARs to existing JVM — no conflict

Configuration

Installation personnalisée de JADX :

root@kitploit:~
# Via environment variable
# export JADX_HOME=/opt/jadx

# Or at runtime
import pyjadx
pyjadx.start(jadx_home="/opt/jadx")

Mise en cache des JAR : Les JAR JADX sont téléchargés automatiquement depuis Maven Central lors de la première utilisation et mis en cache dans ~/.pyjadx/jars/<version>/.

Licence

MIT

Télécharger l’outil
ParamètreDescription
pathChemin vers le fichier APK ou DEX
threadsTaille du pool de threads JADX (None = nombre de CPU)
mode"auto", "restructure", "simple" ou "fallback"
code_cacheFalse = cache en mémoire (par défaut), True = cache sur disque
PropriétéTypeDescription
classeslist[JavaClass]Classes de premier niveau de tous les fichiers DEX
packageslist[JavaPackage]Navigation au niveau des paquets
class_countintNombre de classes de premier niveau
javaJObjectPasserelle vers l'objet jadx.api.JadxDecompiler sous-jacent
MéthodeDescription
load()Charge et résout les classes (appelé par __enter__)
close()Libère les ressources (appelé par __exit__)
decompile_all()Décompile toutes les classes immédiatement
search_class(name)Trouve une classe par son nom qualifié complet
PropriétéTypeDescription
namestrNom court ("MainActivity")
full_namestrNom qualifié complet ("com.example.MainActivity")
packagestrNom du paquet
codestrCode source Java décompilé (paresseux, mis en cache)
smalistrDésassemblage Smali (paresseux, mis en cache)
methodslist[JavaMethod]Méthodes de cette classe
fieldslist[JavaField]Champs de cette classe
inner_classeslist[JavaClass]Classes internes/anonymes
declaring_classJavaClass | NoneClasse parente (si interne)
top_classJavaClassClasse englobante la plus externe
dependencieslist[JavaClass]Classes dont cette classe dépend
is_innerboolIndique s'il s'agit d'une classe interne
javaJObjectPasserelle vers jadx.api.JavaClass
PropriétéTypeDescription
namestrNom de la méthode
full_namestrNom qualifié complet avec la classe
codestrCode source décompilé (paresseux, mis en cache)
callerslist[JavaMethod]Méthodes qui appellent celle-ci (paresseux, mis en cache)
calleeslist[JavaMethod]Méthodes que celle-ci appelle (paresseux, mis en cache)
override_relatedlist[JavaMethod]Chaîne de redéfinition bidirectionnelle
declaring_classJavaClassClasse à laquelle cette méthode appartient
javaJObjectPasserelle vers jadx.api.JavaMethod
PropriétéTypeDescription
namestrNom du champ
full_namestrNom qualifié complet avec la classe
typestrType du champ sous forme de chaîne
callerslist[JavaMethod]Méthodes référençant ce champ (paresseux, mis en cache)
declaring_classJavaClassClasse à laquelle ce champ appartient
javaJObjectPasserelle vers jadx.api.JavaField
PropriétéTypeDescription
namestrNom complet du paquet
classeslist[JavaClass]Classes de ce paquet
sub_packageslist[JavaPackage]Sous-paquets
javaJObjectPasserelle vers jadx.api.JavaPackage