← Ко всем open source проектам

jadx

skylot/jadx

jadx — декомпилятор Android DEX/APK в Java-код с CLI и графическим интерфейсом для анализа приложений.

Форки 5,542
Автор skylot
Язык Java
Лицензия Apache-2.0
Обновлено 2026-06-10

Что это такое

jadx — один из самых известных инструментов для анализа Android-приложений без исходников. Он берет DEX, APK, AAB, AAR или zip-файл и пытается восстановить Java-представление кода, а также разобрать манифест и ресурсы. Для исследователя безопасности, Android-разработчика или человека, который разбирает чужое приложение, это быстрый способ увидеть структуру проекта.

Проект живет с 2013 года и развивается как два инструмента рядом: командная строка для автоматизации и jadx-gui для ручного изучения. В графическом интерфейсе есть подсветка синтаксиса, переходы к объявлениям, поиск использований, полный поиск по тексту и отладчик smali.

Что внутри репозитория

Репозиторий содержит ядро декомпиляции, CLI, графическое приложение и документацию по сборке. Отдельная ценность — встроенный деобфускатор и работа с Android-ресурсами. jadx не обещает восстановить идеальный исходный проект: байткод, оптимизации компилятора и обфускация часто делают результат неполным. Но для навигации по приложению он обычно дает быстрый старт.

Быстрый разбор APK

Пример показывает два режима: сначала открыть приложение в jadx-gui, а затем получить декомпилированные файлы через командную строку для дальнейшего поиска или сравнения.

Язык: Bash
jadx-gui app.apk
jadx -d out app.apk
rg "apiUrl|token|certificate" out

Как используют

jadx используют для аудита мобильных приложений, поиска уязвимых конфигураций, изучения библиотек, восстановления потерянной логики и обучения Android-внутренностям. В командах безопасности он часто стоит рядом с apktool, Frida, эмулятором и статическими анализаторами.

Сильные стороны и ограничения

Сильная сторона jadx — сочетание удобного интерфейса и пригодности для скриптов. Можно быстро открыть APK глазами, а потом повторить часть анализа в CI или локальном скрипте. Ограничение — природа декомпиляции: результат помогает понять поведение, но не является настоящим исходным кодом. Для серьезных выводов его нужно проверять запуском, трассировкой и анализом байткода.