Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ddc — DEX → декомпилятор Java на Rust — быстрый, прогрессивный анализ, двуязычный CLI | Kitploit
Инструменты/GitHubGitHub/ejfkdev/ddc
Безопасность AndroidСтатический анализАнализ КодаДинамический анализ кода (DAST)Пентестинг мобильных приложенийОбратная инженерияМобильная безопасностьУтилиты и фреймворкиАнализ Бинарных Файлов
GitHubejfkdev/ddc

ddc

DEX → декомпилятор Java на Rust — быстрый, прогрессивный анализ, двуязычный CLI

32554331 день назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

ddc — декомпилятор DEX → Java на Rust

English | 简体中文

CI License: MIT

ddc декомпилирует байт-код Android DEX обратно в читаемый Java — в масштабе реальных приложений, с возможностью запросов как к базе данных и с проверкой через javac: каждый из 909 689 файлов, которые он создаёт для семи реальных APK, разбирается без ошибок.

Ключевые особенности

  • Быстро — APK размером 226 МБ / 20 dex (weibo, 98 тыс. классов) полностью декомпилируется за 5.0 с, бандл 398 МБ (Lark) — за 5.5 с; патологические классы выполняются в контролируемых потоках с ограничением по времени вместо зависания всего запуска.
  • Компилируется — полный вывод всех семи эталонных APK (reqable, Telegram, WhatsApp, weibo, weixin, qq, lark — 0.91 млн файлов) проходит javac с нулевым числом синтаксических ошибок; каждый класс из пары имён, различающихся регистром (X/Cua против X/cua), сохраняется как отдельный файл, а не перезаписывается последним молча.
  • Прогрессивная декомпиляция — более 20 подкоманд запросов (строки, перекрёстные ссылки, иерархии, манифест, ресурсы, декомпиляция отдельных методов) отвечают за миллисекунды: сначала запрашиваются метаданные, декомпиляция по требованию, полный запуск можно вообще пропустить.
  • DEX 035–041, полностью — мульти-dex APK, контейнеры XAPK/APKS/APKM, invoke-custom; лямбды и конкатенация строк сворачиваются обратно в настоящую Java ((a) -> …, Cls::name, a + b).
  • Читаемый вывод — локальные имена в стиле jadx (str, getName() → name, строки параметров Kotlin Intrinsics) вместо v12; литералы IntDef отображаются как их константы из коробки (setVisibility(8) → View.GONE; встроенная таблица домена android-37, переопределяется через --symbols); шум проверок на null в Kotlin удаляется, а синтетические мосты access$NNN встраиваются в местах вызова.
  • Воспроизводимый вывод — без временных меток; два запуска дают чистый diff.
  • Двуязычный CLI — сообщения локализуются автоматически (DDC_LANG=zh|en принудительно; откат на английский).
  • Построен на jdc-core — машинно-нейтральном ядре, общем с jcdc.

Установка

macOS (Homebrew):

brew install ejfkdev/tap/ddc

Windows (Scoop) — добавьте bucket один раз, затем установите по имени (scoop не разрешает форму 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 (любая платформа — загружает готовый бинарник релиза вместо компиляции):

cargo binstall ddc-cli

Бинарники: каждый релиз поставляется с готовыми бинарниками (без архивов) для linux-amd64, linux-arm64, windows-amd64, windows-arm64, macos-amd64 и macos-arm64 — сборки не для macOS сжаты UPX.

Из исходников (Rust stable):

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

Использование

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

Полный список опций и примеры: ddc --help (меню подкоманд, сгруппированное по рабочим процессам). Полный справочник — семантика каждой опции, формат вывода и поведение каждой подкоманды — находится в docs/cli.md (中文).

Производительность

Семь реальных APK, релизная сборка, среднее по 3 запускам (Apple Silicon, 6P+12E). Корпус валидации из 39 APK (4.08 млн декомпилированных файлов, время выполнения / пиковый RSS / проверка разбора javac для каждого APK) находится в docs/validation.md (中文).

Полная декомпиляция — 7 реальных APK
APKРазмерПолная декомпиляцияПиковый RSS
reqable34 MB0.25s139 MB
Telegram62 MB5.64s1479 MB
WhatsApp139 MB5.87s (99,277 files — case-variant class pairs all preserved)1116 MB
weibo226 MB5.03s1172 MB
weixin268 MB11.61s1339 MB
lark398 MB5.52s1831 MB
qq374 MB15.92s2459 MB

Подкоманды запросов на тех же APK (ячейки: время / пиковый RSS; strings -f <package> --with-locations, findrefs по строке пакета и методу onCreate, hierarchy/disasm/getclass для класса лаунчера каждого приложения):

Подкоманды запросов — 13 команд × 7 APK
CommandreqableTelegramWhatsAppweiboweixinlarkqq
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

Документация

Скачать инструмент