Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ddc — Android DEX → Java decompiler in Rust, built for speed — full apps in seconds, queries in milliseconds. Progressive analysis, javac-verified output, every DEX version, multi-dex & XAPK/APKS/APKM containers. | Kitploit
Outils/GitHubGitHub/ejfkdev/ddc
Android SecurityStatic AnalysisCode AnalysisDynamic Code Analysis (DAST)Mobile App PentestingReverse EngineeringMobile SecurityUtilities & FrameworksBinary Analysis
GitHubejfkdev/ddc

ddc

Android DEX → Java decompiler in Rust, built for speed — full apps in seconds, queries in milliseconds. Progressive analysis, javac-verified output, every DEX version, multi-dex & XAPK/APKS/APKM containers.

Voir le dépôt
3815794il y a 9 joursVé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
Contenu non disponible dans la langue demandée. Affichage de la version anglaise.

ddc — DEX → Java decompiler in Rust

English | 简体中文

CI License: MIT

ddc decompiles Android DEX bytecode back into readable Java — at real-world app scale, queryable like a database, and javac-verified: every one of the 909,689 files it emits across seven real-world APKs parses cleanly.

Highlights

  • Fast — a 226 MB / 20-dex APK (weibo, 98k classes) fully decompiles in ~13s at high quality, a 62 MB app (Telegram) in ~4.5s; pathological classes run on deadline-bounded monitored threads instead of hanging the run.
  • Compiles — the full output of all seven benchmark APKs (reqable, Telegram, WhatsApp, weibo, weixin, qq, lark — 0.91M files) passes javac with zero syntax errors; every class of a case-variant name pair (X/Cua vs X/cua) is preserved as its own file instead of the last one silently overwriting.
  • Progressive decompilation — 15 query subcommands (strings, cross-references, hierarchies, manifest, resources, per-method decompiles) answer in milliseconds: query metadata first, decompile on demand, skip the full run entirely.
  • DEX 035–041, complete — multi-dex APKs, XAPK/APKS/APKM containers, invoke-custom; lambdas and string concats fold back into real Java ((a) -> …, Cls::name, a + b).
  • Readable output — jadx-style local names (str, getName() → name, Kotlin Intrinsics parameter strings) instead of v12; IntDef literals render as their constants out of the box (setVisibility(8) → View.GONE; a built-in android-37 domain table, --symbols overrides); Kotlin null-check noise is elided and synthetic access$NNN bridges inline at their call sites.
  • Reproducible output — no timestamps; two runs diff cleanly.
  • Human-shaped output, by default (cure): every file goes through a semantic-preserving source-level pass that inlines register-copy chains, folds if/else assignments into ternaries, recovers for-each, drops dead stores and compiler artifacts — −15% output lines on real corpora with identical javac-gate results. The pass is exact, so it costs time: weibo (110k files) takes 23.4 s optimized vs 11.5 s with --fast (skip the simplification, keep formatting).
  • HTTP REST + MCP, built in (xyz-rust): ddc serve exposes every query as a REST route (GET with query params or POST with a JSON body) plus GET /openapi.json and a streamable MCP endpoint at /mcp — point an MCP client at http://addr/mcp; ddc http is REST-only (no /mcp); ddc mcp stdio|http runs the same commands as MCP tools with input and output schemas. Query commands take --format auto|text|table|markdown|md|json|jsonl (auto: table on a terminal, the stable text form when piped).
  • Bilingual CLI — messages localize automatically (DDC_LANG=zh|en forces; English fallback).
  • Built on jdc-core, the machine-neutral core shared with jcdc.

Install

macOS (Homebrew):

brew install ejfkdev/tap/ddc

Windows (Scoop) — add the bucket once, then install by name (scoop does not resolve a bare user/repo/app form — 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 (any platform — fetches the prebuilt release binary instead of compiling):

cargo binstall ddc-cli

Binaries: every release ships raw binaries (no archives) for linux-amd64, linux-arm64, windows-amd64, windows-arm64, macos-amd64 and macos-arm64 — non-macOS builds UPX-compressed.

From source (Rust stable):

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

Usage

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

Full options and examples: ddc --help (subcommand menu grouped by workflow). The complete reference — every option's semantics, every subcommand's output format and behavior — lives in docs/cli.md (中文).

Performance

Seven real-world APKs, release build, measured after a cooldown (Apple Silicon, 6P+12E). The 39-APK validation corpus (4.08M decompiled files, per-APK wall time / peak RSS / javac parse gate) is in docs/validation.md (中文).

Full decompile — 7 real-world APKs
APKSizeFull decompilePeak RSS
reqable34 MB0.57s162 MB
Telegram62 MB4.50s786 MB
WhatsApp139 MB13.6s (99,483 files — case-variant class pairs all preserved)944 MB
weibo226 MB13.5s1173 MB
weixin268 MB32.7s1401 MB
lark398 MB16.1s2226 MB
qq374 MB37.1s2268 MB

Query subcommands on the same APKs (cells: time / peak RSS; strings -f <package> --with-locations, findrefs on the package string and method onCreate, hierarchy/disasm/getclass on each app's launcher class):

Query subcommands — 13 commands × 7 APKs
Télécharger l’outil