Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
ddc — DEX → Java-Decompiler in Rust — schnell, progressive Analyse, zweisprachige CLI | Kitploit
Tools/GitHubGitHub/ejfkdev/ddc
Android-SicherheitStatische AnalyseCode-AnalyseDynamische Code-Analyse (DAST)Mobile App-PenetrationstestsReverse EngineeringMobile SicherheitDienstprogramme & FrameworksBinäranalyse
GitHubejfkdev/ddc

ddc

DEX → Java-Decompiler in Rust — schnell, progressive Analyse, zweisprachige CLI

3255433vor 1 TagVon 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
Repository anzeigen

ddc — DEX → Java-Decompiler in Rust

English | 简体中文

CI License: MIT

ddc dekompiliert Android-DEX-Bytecode zurück in lesbares Java — in der Größenordnung realer Apps, abfragbar wie eine Datenbank und javac-verifiziert: jede der 909.689 Dateien, die es über sieben reale APKs hinweg erzeugt, parst fehlerfrei.

Highlights

  • Schnell — ein 226 MB / 20-Dex-APK (weibo, 98k Klassen) wird vollständig in 5,0s dekompiliert, ein 398 MB großes Bundle (Lark) in 5,5s; pathologische Klassen laufen auf deadline-begrenzten überwachten Threads, statt den Lauf zum Hängen zu bringen.
  • Kompiliert — die vollständige Ausgabe aller sieben Benchmark-APKs (reqable, Telegram, WhatsApp, weibo, weixin, qq, lark — 0,91M Dateien) besteht javac mit null Syntaxfehlern; jede Klasse eines Namenspaares mit abweichender Groß-/Kleinschreibung (X/Cua vs. X/cua) bleibt als eigene Datei erhalten, statt dass die letzte die vorherige still überschreibt.
  • Progressive Dekompilierung — über 20 Query-Subcommands (Strings, Querverweise, Hierarchien, Manifest, Ressourcen, Dekompilate pro Methode) antworten in Millisekunden: zuerst Metadaten abfragen, bei Bedarf dekompilieren, den vollständigen Lauf ganz überspringen.
  • DEX 035–041, vollständig — Multi-Dex-APKs, XAPK/APKS/APKM- Container, invoke-custom; Lambdas und String-Konkatenationen falten sich zurück in echtes Java ((a) -> …, Cls::name, a + b).
  • Lesbare Ausgabe — lokale Namen im jadx-Stil (str, getName() → name, Kotlin-Intrinsics-Parameterstrings) statt v12; IntDef-Literale werden out of the box als ihre Konstanten dargestellt (setVisibility(8) → View.GONE; eine eingebaute android-37- Domänentabelle, --symbols überschreibt); Kotlin-Null-Check-Rauschen wird entfernt und synthetische access$NNN-Brücken werden an ihren Aufrufstellen inlined.
  • Reproduzierbare Ausgabe — keine Zeitstempel; zwei Läufe diffen sauber.
  • Zweisprachige CLI — Meldungen werden automatisch lokalisiert (DDC_LANG=zh|en erzwingt; englischer Fallback).
  • Basiert auf jdc-core, dem maschinenneutralen Kern, der mit jcdc geteilt wird.

Installation

macOS (Homebrew):

brew install ejfkdev/tap/ddc

Windows (Scoop) — einmal den Bucket hinzufügen, dann nach Namen installieren (scoop löst eine bloße user/repo/app-Form nicht auf — Issue #3):

scoop bucket add ejfkdev https://github.com/ejfkdev/scoop-bucket
scoop install ddc

# or install straight from the manifest URL, no bucket needed:
scoop install https://raw.githubusercontent.com/ejfkdev/scoop-bucket/main/bucket/ddc.json

cargo-binstall (jede Plattform — lädt das vorgebaute Release-Binary herunter, statt zu kompilieren):

cargo binstall ddc-cli

Binaries: jedes Release liefert rohe Binaries (keine Archive) für linux-amd64, linux-arm64, windows-amd64, windows-arm64, macos-amd64 und macos-arm64 — Nicht-macOS-Builds UPX-komprimiert.

Aus dem Quellcode (Rust stable):

git clone https://github.com/ejfkdev/ddc && cd ddc
cargo build --release

Verwendung

ddc app.apk                          # full decompile → app-out/
ddc app.apk -c com.example.Foo       # one class to stdout
ddc app.apk -o - | less              # everything to stdout

ddc info app.apk                      # app context (label via arsc, package,
                                      # version, md5) + per-dex counts
ddc mainactivity app.apk             # entry point: package + launcher
ddc findrefs app.apk string token    # every const-string "token" site
ddc getmethod app.apk Foo.toString   # one method, all overloads
ddc pkg app.apk --app -o own/        # the app's own code only

Vollständige Optionen und Beispiele: ddc --help (Subcommand-Menü nach Workflow gruppiert). Die vollständige Referenz — die Semantik jeder Option, das Ausgabeformat und Verhalten jedes Subcommands — findet sich in docs/cli.md (中文).

Performance

Sieben reale APKs, Release-Build, Mittelwerte aus 3 Läufen (Apple Silicon, 6P+12E). Das 39-APK-Validierungskorpus (4,08M dekompilierte Dateien, Wandzeit / Peak-RSS / javac-Parse-Gate pro APK) findet sich in docs/validation.md (中文).

Vollständige Dekompilierung — 7 reale APKs
APKGrößeVollständige DekompilierungPeak-RSS
reqable34 MB0,25s139 MB
Telegram62 MB5,64s1479 MB
WhatsApp139 MB5,87s (99.277 Dateien — alle Klassennamenpaare mit abweichender Groß-/Kleinschreibung erhalten)1116 MB
weibo226 MB5,03s1172 MB
weixin268 MB11,61s1339 MB
lark398 MB5,52s1831 MB
qq374 MB15,92s2459 MB

Query-Subcommands auf denselben APKs (Zellen: Zeit / Peak-RSS; strings -f <package> --with-locations, findrefs auf den Package-String und die Methode onCreate, hierarchy/disasm/ getclass auf die Launcher-Klasse jeder App):

Query-Subcommands — 13 Befehle × 7 APKs
BefehlreqableTelegramWhatsAppweiboweixinlarkqq
info0.12s / 40MB0.21s / 88MB0.42s / 305MB0.65s / 610MB0.79s / 550MB1.10s / 907MB1.08s / 1240MB
listclasses0.04s / 21MB0.06s / 84MB0.08s / 93MB0.13s / 396MB0.21s / 417MB0.20s / 299MB0.27s / 391MB
manifest0.03s / 7MB0.03s / 14MB0.02s / 20MB0.03s / 43MB0.04s / 31MB0.03s / 28MB0.03s / 47MB
mainactivity0.04s / 24MB0.06s / 86MB0.08s / 224MB0.10s / 358MB0.13s / 371MB0.14s / 421MB0.21s / 554MB
res0.02s / 7MB0.03s / 15MB0.03s / 22MB0.05s / 60MB0.04s / 32MB0.04s / 31MB0.05s / 53MB
largest0.05s / 29MB0.08s / 78MB0.15s / 236MB0.31s / 500MB0.32s / 500MB0.46s / 676MB0.66s / 810MB
strings0.05s / 24MB0.10s / 85MB0.21s / 222MB0.39s / 354MB0.45s / 395MB0.52s / 431MB0.81s / 551MB
findrefs-string0.04s / 26MB0.05s / 70MB0.06s / 214MB0.10s / 403MB0.12s / 446MB0.07s / 335MB0.14s / 871MB
findrefs-method0.05s / 26MB0.07s / 70MB0.07s / 219MB0.09s / 410MB0.10s / 458MB0.10s / 620MB0.15s / 896MB
members0.07s / 23MB0.21s / 86MB0.62s / 222MB1.32s / 366MB1.17s / 381MB1.64s / 443MB2.66s / 572MB
hierarchy0.04s / 24MB0.05s / 86MB0.09s / 212MB0.12s / 396MB0.14s / 386MB0.17s / 429MB0.22s / 548MB
disasm0.04s / 23MB0.07s / 88MB0.09s / 214MB0.12s / 371MB0.13s / 392MB0.16s / 422MB0.20s / 533MB
getclass0.05s / 34MB0.28s / 182MB0.14s / 357MB0.33s / 740MB0.37s / 942MB0.50s / 1235MB0.76s / 1651MB

Dokumentation

Tool herunterladen