Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pyjadx — Python-Anbindungen für JADX. | Kitploit
Tools/GitHubGitHub/amruth-sn/pyjadx
Android-SicherheitStatische AnalyseCode-AnalyseReverse EngineeringMobile SicherheitBinäranalyse
GitHubamruth-sn/pyjadx

pyjadx

Python-Anbindungen für JADX.

Repository anzeigen
62vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

pyjadx

Python-Bindungen für JADX über JPype. Dekompiliere Android APK- und DEX-Dateien in Java-Quellcode aus 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)

Warum pyjadx?

JADX ist der führende Open-Source-Android-Dekompiler – er erzeugt sauberen Java/Kotlin-Quellcode aus Dalvik-Bytecode und bewahrt Klassenhierarchien, Generics, Ausnahmebehandlung und Annotationen. pyjadx bringt dies in Python ohne Subprozess-Overhead: JADX läuft prozessintern über JPype.

Install

root@kitploit:~
pip install pyjadx

Voraussetzungen: JDK 11+ (JADX JARs werden beim ersten Gebrauch automatisch heruntergeladen).

Quick start

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")

Supported inputs

FormatBeispiel
APKJadx("app.apk")
DEXJadx("classes.dex")
Multi-DEX APKWird transparent behandelt – alle Klassen zusammengeführt

API reference

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

Hauptzugangspunkt. Verwende es als Kontextmanager oder rufe load()/close() manuell auf.

Eigenschaften:

Methoden:

JavaClass

JavaMethod

JavaField

JavaPackage

Notausstieg

Jeder Wrapper stellt das zugrunde liegende JADX-Java-Objekt über .java bereit. Dadurch kannst du jede JADX-API aufrufen, die wir noch nicht implementiert haben:

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()

JVM-Koexistenz

pyjadx koexistiert mit anderen JPype-Verbrauchern (z. B. PyGhidra) im selben Prozess. Wenn bereits eine JVM läuft, fügt pyjadx.start() JADX-JARs zum vorhandenen Klassenpfad hinzu. Andernfalls startet es eine.

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

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

Konfiguration

Benutzerdefinierte JADX-Installation:

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

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

JAR-Zwischenspeicherung: JADX JARs werden beim ersten Gebrauch automatisch von Maven Central heruntergeladen und unter ~/.pyjadx/jars/<version>/ zwischengespeichert.

License

MIT

Tool herunterladen
ParameterBeschreibung
pathPfad zur APK- oder DEX-Datei
threadsJADX-Threadpool-Größe (None = Anzahl der CPUs)
mode"auto", "restructure", "simple" oder "fallback"
code_cacheFalse = In-Memory-Cache (Standard), True = datenträgergestützt
EigenschaftTypBeschreibung
classeslist[JavaClass]Top-Level-Klassen über alle DEX-Dateien hinweg
packageslist[JavaPackage]Navigation auf Paketebene
class_countintAnzahl der Top-Level-Klassen
javaJObjectNotausstieg zum zugrunde liegenden jadx.api.JadxDecompiler
MethodeBeschreibung
load()Lädt und löst Klassen auf (aufgerufen von __enter__)
close()Gibt Ressourcen frei (aufgerufen von __exit__)
decompile_all()Dekompiliert alle Klassen sofort (eager)
search_class(name)Findet eine Klasse anhand des vollqualifizierten Namens
EigenschaftTypBeschreibung
namestrKurzname ("MainActivity")
full_namestrVollqualifiziert ("com.example.MainActivity")
packagestrPaketname
codestrDekompilierter Java-Quellcode (lazy, zwischengespeichert)
smalistrSmali-Disassemblierung (lazy, zwischengespeichert)
methodslist[JavaMethod]Methoden in dieser Klasse
fieldslist[JavaField]Felder in dieser Klasse
inner_classeslist[JavaClass]Innere/anonyme Klassen
declaring_classJavaClass | NoneElternklasse (wenn innere Klasse)
top_classJavaClassÄußerste umschließende Klasse
dependencieslist[JavaClass]Klassen, von denen diese Klasse abhängt
is_innerboolOb es sich um eine innere Klasse handelt
javaJObjectNotausstieg zu jadx.api.JavaClass
EigenschaftTypBeschreibung
namestrMethodenname
full_namestrVollqualifiziert mit Klasse
codestrDekompilierter Quellcode (lazy, zwischengespeichert)
callerslist[JavaMethod]Methoden, die diese aufrufen (lazy, zwischengespeichert)
calleeslist[JavaMethod]Methoden, die diese aufruft (lazy, zwischengespeichert)
override_relatedlist[JavaMethod]Bidirektionale Überschreibungskette
declaring_classJavaClassKlasse, zu der diese Methode gehört
javaJObjectNotausstieg zu jadx.api.JavaMethod
EigenschaftTypBeschreibung
namestrFeldname
full_namestrVollqualifiziert mit Klasse
typestrFeldtyp als Zeichenkette
callerslist[JavaMethod]Methoden, die auf dieses Feld verweisen (lazy, zwischengespeichert)
declaring_classJavaClassKlasse, zu der dieses Feld gehört
javaJObjectNotausstieg zu jadx.api.JavaField
EigenschaftTypBeschreibung
namestrVollständiger Paketname
classeslist[JavaClass]Klassen in diesem Paket
sub_packageslist[JavaPackage]Unterpakete
javaJObjectNotausstieg zu jadx.api.JavaPackage