Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ddc — DEX → Descompilador Java em Rust — rápido, análise progressiva, CLI bilíngue | Kitploit
Ferramentas/GitHubGitHub/ejfkdev/ddc
Segurança AndroidAnálise EstáticaAnálise de CódigoAnálise Dinâmica de Código (DAST)Pentesting de Apps MóveisEngenharia ReversaSegurança MóvelUtilitários e FrameworksAnálise de Binários
GitHubejfkdev/ddc

ddc

DEX → Descompilador Java em Rust — rápido, análise progressiva, CLI bilíngue

3255433há 1 diaRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

ddc — Descompilador DEX → Java em Rust

English | 简体中文

CI License: MIT

ddc descompila bytecode DEX do Android de volta para Java legível — em escala de aplicações do mundo real, consultável como um banco de dados e verificado pelo javac: cada um dos 909.689 arquivos que ele emite em sete APKs do mundo real é analisado sintaticamente sem erros.

Destaques

  • Rápido — um APK de 226 MB / 20 dex (weibo, 98k classes) é totalmente descompilado em 5,0s, um bundle de 398 MB (Lark) em 5,5s; classes patológicas são executadas em threads monitoradas com prazo limitado em vez de travar a execução.
  • Compila — a saída completa de todos os sete APKs de benchmark (reqable, Telegram, WhatsApp, weibo, weixin, qq, lark — 0,91M arquivos) passa pelo javac com zero erros de sintaxe; cada classe de um par de nomes com variação de maiúsculas/minúsculas (X/Cua vs X/cua) é preservada como seu próprio arquivo em vez de a última sobrescrever silenciosamente.
  • Descompilação progressiva — mais de 20 subcomandos de consulta (strings, referências cruzadas, hierarquias, manifest, recursos, descompilações por método) respondem em milissegundos: consulte os metadados primeiro, descompile sob demanda, pule a execução completa inteiramente.
  • DEX 035–041, completo — APKs multi-dex, contêineres XAPK/APKS/APKM, invoke-custom; lambdas e concatenações de strings se dobram de volta em Java real ((a) -> …, Cls::name, a + b).
  • Saída legível — nomes locais no estilo jadx (str, getName() → name, strings de parâmetros Intrinsics do Kotlin) em vez de v12; literais IntDef são renderizados como suas constantes imediatamente (setVisibility(8) → View.GONE; uma tabela de domínio android-37 embutida, --symbols sobrescreve); o ruído de verificação de nulo do Kotlin é eliminado e pontes sintéticas access$NNN são embutidas em seus locais de chamada.
  • Saída reproduzível — sem timestamps; duas execuções geram diff limpo.
  • CLI bilíngue — mensagens se localizam automaticamente (DDC_LANG=zh|en força; fallback para inglês).
  • Construído sobre jdc-core, o núcleo neutro em relação à máquina compartilhado com jcdc.

Instalação

macOS (Homebrew):

brew install ejfkdev/tap/ddc

Windows (Scoop) — adicione o bucket uma vez, depois instale pelo nome (o scoop não resolve a forma nua user/repo/app — 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 (qualquer plataforma — busca o binário de release pré-compilado em vez de compilar):

cargo binstall ddc-cli

Binários: cada release inclui binários brutos (sem arquivos) para linux-amd64, linux-arm64, windows-amd64, windows-arm64, macos-amd64 e macos-arm64 — builds não-macOS comprimidos com UPX.

A partir do código-fonte (Rust stable):

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

Uso

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

Opções completas e exemplos: ddc --help (menu de subcomandos agrupado por fluxo de trabalho). A referência completa — a semântica de cada opção, o formato de saída e o comportamento de cada subcomando — está em docs/cli.md (中文).

Desempenho

Sete APKs do mundo real, build de release, médias de 3 execuções (Apple Silicon, 6P+12E). O corpus de validação de 39 APKs (4,08M arquivos descompilados, tempo de parede por APK / RSS de pico / gate de análise do javac) está em docs/validation.md (中文).

Descompilação completa — 7 APKs do mundo real
APKTamanhoDescompilação completaRSS de pico
reqable34 MB0,25s139 MB
Telegram62 MB5,64s1479 MB
WhatsApp139 MB5,87s (99.277 arquivos — todos os pares de classes com variação de maiúsculas/minúsculas preservados)1116 MB
weibo226 MB5,03s1172 MB
weixin268 MB11,61s1339 MB
lark398 MB5,52s1831 MB
qq374 MB15,92s2459 MB

Subcomandos de consulta nos mesmos APKs (células: tempo / RSS de pico; strings -f <package> --with-locations, findrefs na string do pacote e no método onCreate, hierarchy/disasm/getclass na classe launcher de cada app):

Subcomandos de consulta — 13 comandos × 7 APKs
ComandoreqableTelegramWhatsAppweiboweixinlarkqq
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

Documentação

Baixar ferramenta