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
jadx — Kommandozeilen- und GUI-Tool zum Dekompilieren von Android-Dex- und APK-Dateien in lesbaren Java-Quellcode, mit Ressourcendekodierung, Entschleierung und Smali-Debugging-Funktionen. | Kitploit
Tools/GitHubGitHub/skylot/jadx
Android-SicherheitStatische AnalyseReverse EngineeringDebuggerBinäranalyse
GitHubskylot/jadx

jadx

Kommandozeilen- und GUI-Tool zum Dekompilieren von Android-Dex- und APK-Dateien in lesbaren Java-Quellcode, mit Ressourcendekodierung, Entschleierung und Smali-Debugging-Funktionen.

Repository anzeigen
50.0k5.7kvor 15h 39mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

JADX

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

jadx - Dex-zu-Java-Decompiler

Kommandozeilen- und GUI-Tools zum Erzeugen von Java-Quellcode aus Android-Dex- und Apk-Dateien

[!WARNING] Bitte beachten Sie, dass jadx in den meisten Fällen nicht 100% des Codes dekompilieren kann, daher treten Fehler auf.
Überprüfen Sie den Leitfaden zur Fehlerbehebung für Workarounds.

Hauptfunktionen:

  • Dekompiliert Dalvik-Bytecode in Java-Code aus APK-, Dex-, AAR-, AAB- und ZIP-Dateien
  • Dekodiert AndroidManifest.xml und andere Ressourcen aus resources.arsc
  • Deobfuscator enthalten

jadx-gui-Funktionen:

  • Anzeige dekompilierter Code mit Syntax-Highlighting
  • Springen zur Deklaration
  • Verwendung suchen
  • Volltextsuche
  • Smali-Debugger, siehe Wiki-Seite für Einrichtung und Nutzung

Die Tastenkombinationen von Jadx-gui finden Sie hier

Sehen Sie diese Funktionen in Aktion: Übersicht über jadx-gui-Funktionen

Download

  • Release von github: Latest release
  • neuesten instabilen Build GitHub commits since tagged version (branch)

Nach dem Download entpacken Sie die Zip-Datei, wechseln Sie in das bin-Verzeichnis und führen Sie aus:

  • jadx - Kommandozeilenversion
  • jadx-gui - GUI-Version

Unter Windows führen Sie .bat-Dateien durch Doppelklick aus.
Hinweis: Stellen Sie sicher, dass Sie Java 11 oder eine spätere 64-Bit-Version installiert haben. Für Windows können Sie es von oracle.com herunterladen (wählen Sie 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

Sie können jadx in Ihren Java-Projekten verwenden, Details finden Sie auf der Wiki-Seite

Build from source

JDK 17 oder höher muss installiert sein:

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

(Unter Windows verwenden Sie gradlew.bat anstelle von ./gradlew)

Skripte zum Ausführen von jadx werden im build/jadx/bin-Verzeichnis abgelegt und auch in build/jadx-<version>.zip verpackt.

Usage

root@kitploit:~
jadx[-gui] [command] [options] <input files> (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab, .xapk, .apkm, .jadx.kts)
commands (use '<command> --help' for command options):
  plugins	  - jadx-Plugins verwalten

options:
  -d, --output-dir                              - Ausgabeverzeichnis
  -ds, --output-dir-src                         - Ausgabeverzeichnis für Quellen
  -dr, --output-dir-res                         - Ausgabeverzeichnis für Ressourcen
  -r, --no-res                                  - Ressourcen nicht dekodieren
  -s, --no-src                                  - Quellcode nicht dekompilieren
  -j, --threads-count                           - Anzahl der Verarbeitungsthreads, Standard: 16
  --single-class                                - Eine einzelne Klasse dekompilieren, vollständiger Name, roh oder Alias
  --single-class-output                         - Datei oder Verzeichnis zum Schreiben, wenn eine einzelne Klasse dekompiliert wird
  --output-format                               - kann 'java' oder 'json' sein, Standard: java
  -e, --export-gradle                           - als Gradle-Projekt speichern (setzen Sie '--export-gradle-type' auf 'auto')
  --export-gradle-type                          - Gradle-Projektvorlage für den Export:
                                                   'auto' - automatisch erkennen
                                                   'android-app' - Android-Anwendung (apk)
                                                   'android-library' - Android-Bibliothek (aar)
                                                   'simple-java' - einfaches Java
  -m, --decompilation-mode                      - Code-Ausgabemodus:
                                                   'auto' - beste Optionen versuchen (Standard)
                                                   'restructure' - Codestruktur wiederherstellen (normaler Java-Code)
                                                   'simple' - vereinfachte Anweisungen (linear mit goto)
                                                   'fallback' - rohe Anweisungen ohne Änderungen
  --show-bad-code                               - inkonsistenten Code anzeigen (falsch dekompiliert)
  --no-xml-pretty-print                         - XML nicht verschönern
  --no-imports                                  - Importe deaktivieren, immer den vollständigen Paketnamen schreiben
  --no-debug-info                               - Debug-Informationen nicht parsen und verarbeiten
  --add-debug-lines                             - Kommentare mit Debug-Zeilennummern hinzufügen, falls verfügbar
  --no-inline-anonymous                         - anonyme Klassen nicht inlinen
  --no-inline-methods                           - Methoden nicht inlinen
  --no-move-inner-classes                       - innere Klassen nicht in die Elternklasse verschieben
  --no-inline-kotlin-lambda                     - Kotlin-Lambdas nicht inlinen
  --no-finally                                  - finally-Block nicht extrahieren
  --no-restore-switch-over-string               - switch über String nicht wiederherstellen
  --no-replace-consts                           - Konstantenwerte nicht durch passende Konstantenfelder ersetzen
  --escape-unicode                              - nicht-lateinische Zeichen in Strings escapen (mit \u)
  --respect-bytecode-access-modifiers           - ursprüngliche Zugriffsmodifikatoren nicht ändern
  --mappings-path                               - Deobfuscation-Mappings-Datei oder -Verzeichnis. Erlaubte Formate: Tiny und Tiny v2 (beide '.tiny'), Enigma (.mapping) oder Enigma-Verzeichnis
  --mappings-mode                               - Modus für die Behandlung der Deobfuscation-Mapping-Datei festlegen:
                                                   'read' - nur lesen, Benutzer kann immer manuell speichern (Standard)
                                                   'read-and-autosave-every-change' - lesen und nach jeder Änderung automatisch speichern
                                                   'read-and-autosave-before-closing' - lesen und vor dem Beenden der App oder Schließen des Projekts automatisch speichern
                                                   'ignore' - nicht lesen oder speichern (kann verwendet werden, um das Laden von Mapping-Dateien zu überspringen, auf die in der Projektdatei verwiesen wird)
  --deobf                                       - Deobfuscation aktivieren
  --deobf-min                                   - Mindestlänge des Namens, umbenannt wenn kürzer, Standard: 3
  --deobf-max                                   - Maximallänge des Namens, umbenannt wenn länger, Standard: 64
  --deobf-whitelist                             - Leerzeichen-getrennte Liste von Klassen (vollständiger Name) und Paketen (endet mit '.*') zum Ausschluss von der Deobfuscation, Standard: android.support.v4.* android.support.v7.* android.support.v4.os.* android.support.annotation.Px androidx.core.os.* androidx.annotation.Px
  --deobf-cfg-file                              - Deobfuscation-Mappings-Datei für JADX-automatisch generierte Namen (im JOBF-Dateiformat), Standard: gleiches Verzeichnis und Name wie Eingabedatei mit Erweiterung '.jobf'
  --deobf-cfg-file-mode                         - Modus für die Behandlung der Deobfuscation-Map-Datei für JADX-automatisch generierte Namen:
                                                   'read' - lesen falls vorhanden, nicht speichern (Standard)
                                                   'read-or-save' - lesen falls vorhanden, sonst speichern (nicht überschreiben)
                                                   'overwrite' - nicht lesen, immer speichern
                                                   'ignore' - nicht lesen und nicht speichern
  --deobf-res-name-source                       - bessere Namensquelle für Ressourcen:
                                                   'auto' - automatisch den besten Namen auswählen (Standard)
                                                   'resources' - Ressourcennamen verwenden
                                                   'code' - R-Klassen-Feldnamen verwenden
  --use-source-name-as-class-name-alias         - Quellnamen als Klassenname-Alias verwenden:
                                                   'always' - Quellnamen immer verwenden falls verfügbar
                                                   'if-better' - Quellnamen verwenden falls er besser erscheint als der aktuelle
                                                   'never' - Quellnamen nie verwenden, auch wenn verfügbar
  --source-name-repeat-limit                    - Quellnamen erlauben, wenn er weniger als eine Grenzzahl vorkommt, Standard: 10
  --use-kotlin-methods-for-var-names            - Kotlin-intrinsische Methoden zum Umbenennen von Variablen verwenden, Werte: disable, apply, apply-and-hide, Standard: apply
  --use-headers-for-detect-resource-extensions  - Header zur Erkennung von Ressourcenerweiterungen verwenden, wenn Ressourcen obfuskiert sind
  --rename-flags                                - Korrekturoptionen (kommaseparierte Liste von):
                                                   'case' - Groß-/Kleinschreibungsprobleme beheben (gemäß Option --fs-case-sensitive),
                                                   'valid' - Java-Bezeichner umbenennen, um sie gültig zu machen,
                                                   'printable' - nicht druckbare Zeichen aus Bezeichnern entfernen,
                                                  oder einzelnes 'none' - um alle Umbenennungen zu deaktivieren
                                                  oder einzelnes 'all' - um alle zu aktivieren (Standard)
  --integer-format                              - Anzeigeformat für Ganzzahlen:
                                                   'auto' - automatisch auswählen (Standard)
                                                   'decimal' - dezimal
                                                   'hexadecimal' - hexadezimal
  --type-update-limit                           - Typaktualisierungslimit (pro Anweisung), Standard: 10
  --fs-case-sensitive                           - Dateisystem als case-sensitiv behandeln, standardmäßig false
  --cfg                                         - Methoden-Kontrollflussgraphen in Dot-Datei speichern
  --raw-cfg                                     - Methoden-Kontrollflussgraphen speichern (rohe Anweisungen)
  --call-graph                                  - App-Aufrufgraphen speichern im Format: 'dot' oder 'json', Standard: none
  -f, --fallback                                - setze '--decompilation-mode' auf 'fallback' (veraltet)
  --use-dx                                      - dx/d8 zum Konvertieren von Java-Bytecode verwenden
  --comments-level                              - Code-Kommentarebene festlegen, Werte: error, warn, info, debug, user-only, none, Standard: info
  --log-level                                   - Log-Level festlegen, Werte: quiet, progress, error, warn, info, debug, Standard: progress
  -v, --verbose                                 - ausführliche Ausgabe (setzt --log-level auf DEBUG)
  -q, --quiet                                   - Ausgabe ausschalten (setzt --log-level auf QUIET)
  --disable-plugins                             - Kommaseparierte Liste von Plugin-IDs zum Deaktivieren
  --config <config-ref>                         - Konfiguration aus Datei laden, <config-ref> kann sein:
                                                   Pfad zu '.json'-Datei
                                                   Kurzname - verwendet Datei mit diesem Namen aus dem Konfigurationsverzeichnis
                                                   'none' - um Konfigurationsladen zu deaktivieren
  --save-config <config-ref>                    - aktuelle Optionen in Konfigurationsdatei speichern und beenden, <config-ref> kann sein:
                                                   leer - für Standardkonfiguration
                                                   Pfad zu '.json'-Datei
                                                   Kurzname - Datei wird im Konfigurationsverzeichnis gespeichert
  --print-files                                 - von jadx verwendete Dateien und Verzeichnisse ausgeben (Konfiguration, Cache, Temp)
  --version                                     - jadx-Version ausgeben
  -h, --help                                    - diese Hilfe ausgeben

Plugin-Optionen (-P<name>=<value>):
  dex-input: Lädt .dex- und .apk-Dateien
    - dex-input.verify-checksum                 - Prüfsumme der Dex-Datei vor dem Laden verifizieren, Werte: [yes, no], Standard: yes
  java-convert: Konvertiert .class-, .jar- und .aar-Dateien nach dex
    - java-convert.mode                         - Konvertierungsmodus, Werte: [dx, d8, both], Standard: both
    - java-convert.d8-desugar                   - Desugar in d8 verwenden, Werte: [yes, no], Standard: no
  kotlin-metadata: Verwendet kotlin.Metadata-Annotation zur Codegenerierung
    - kotlin-metadata.class-alias               - Klassenalias umbenennen, Werte: [yes, no], Standard: yes
    - kotlin-metadata.method-args               - Funktionsargumente umbenennen, Werte: [yes, no], Standard: yes
    - kotlin-metadata.fields                    - Felder umbenennen, Werte: [yes, no], Standard: yes
    - kotlin-metadata.companion                 - Companion-Objekt umbenennen, Werte: [yes, no], Standard: yes
    - kotlin-metadata.data-class                - Data-Class-Modifikator hinzufügen, Werte: [yes, no], Standard: yes
    - kotlin-metadata.to-string                 - Felder mit toString umbenennen, Werte: [yes, no], Standard: yes
    - kotlin-metadata.getters                   - einfache Getter auf Feldnamen umbenennen, Werte: [yes, no], Standard: yes
  kotlin-smap: Verwendet kotlin.SourceDebugExtension-Annotation zum Umbenennen des Klassenalias
    - kotlin-smap.class-alias-source-dbg        - Klassenalias von SourceDebugExtension umbenennen, Werte: [yes, no], Standard: no
  rename-mappings: Unterstützung für verschiedene Mappings
    - rename-mappings.format                    - Mapping-Format, Werte: [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], Standard: AUTO
    - rename-mappings.invert                    - Mapping beim Laden invertieren, Werte: [yes, no], Standard: no
  smali-input: Lädt .smali-Dateien
    - smali-input.api-level                     - Android-API-Level, Standard: 27

Umgebungsvariablen:
  JADX_DISABLE_XML_SECURITY - auf 'true' setzen, um alle Sicherheitsüberprüfungen für XML-Dateien zu deaktivieren
  JADX_DISABLE_ZIP_SECURITY - auf 'true' setzen, um alle Sicherheitsüberprüfungen für ZIP-Dateien zu deaktivieren
  JADX_ZIP_MAX_ENTRIES_COUNT - maximal zulässige Anzahl von Einträgen in ZIP-Dateien (Standard: 100.000)
  JADX_CONFIG_DIR - benutzerdefiniertes Konfigurationsverzeichnis, standardmäßig System
  JADX_CACHE_DIR - benutzerdefiniertes Cache-Verzeichnis, standardmäßig System
  JADX_TMP_DIR - benutzerdefiniertes Temp-Verzeichnis, standardmäßig System

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

Diese Optionen funktionieren auch in jadx-gui, wenn es von der Kommandozeile aus gestartet wird, und überschreiben die Optionen aus dem Einstellungsdialog.

Verwendung des Befehls plugins

root@kitploit:~
usage: plugins [options]
options:
  -i, --install <locationId>      - Plugin mit locationId installieren
  -j, --install-jar <path-to.jar> - Plugin aus einer JAR-Datei installieren
  -l, --list                      - installierte Plugins auflisten
  -a, --available                 - verfügbare Plugins aus jadx-plugins-list (auch Marktplatz genannt) auflisten
  -u, --update                    - installierte Plugins aktualisieren
  --uninstall <pluginId>          - Plugin mit pluginId deinstallieren
  --disable <pluginId>            - Plugin mit pluginId deaktivieren
  --enable <pluginId>             - Plugin mit pluginId aktivieren
  --list-all                      - alle Plugins auflisten, einschließlich gebündelter und Dropins
  --list-versions <locationId>    - neueste Versionen des Plugins von locationId abrufen (lädt alle Artefakte herunter, begrenzt auf 10)
  -h, --help                      - diese Hilfe ausgeben

Troubleshooting

Bitte überprüfen Sie die Wiki-Seite Troubleshooting Q&A

Contributing

Um dieses Projekt zu unterstützen, können Sie:

  • Ideen zu neuen Funktionen/Optimierungen posten, die Ihnen wichtig sind
  • Dekompilierungsprobleme einreichen, bitte lesen Sie vorher: Open issue
  • Pull-Request eröffnen, bitte befolgen Sie diese Regeln: Pull Request Process

Lizenziert unter der Apache 2.0 Lizenz

Tool herunterladen