Droid ASC: Android-декомпилятор нового поколения
Droid ASC — ультрабыстрый декомпилятор APK, представленный на Black Hat Europe 2026. Поиск за 1,79 с, декомпиляция за 177 мс, RAM всего 141 МБ.
Декомпилятор, который не заставляет ждать
Droid ASC — инструмент с открытым исходным кодом для реверс-инжиниринга Android-приложений, представленный на Black Hat Europe 2026 Arsenal. Он решает застарелую проблему мобильного пентеста: медленную декомпиляцию и огромный аппетит к памяти у классических инструментов при работе с крупными APK-файлами.
Живая демонстрация проводилась на коммерческом APK размером 352 МБ: Droid ASC выполняет глобальный поиск перекрёстных ссылок за 1,79 секунды и декомпилирует целевые классы за 177 миллисекунд, расходуя всего 141 МБ оперативной памяти.
Проблема традиционных декомпиляторов
При декомпиляции больших APK стандартная процедура — ждать. Инструменты поглощают гигабайты RAM, полностью распаковывают артефакт и тратят десятки минут на построение глобальных индексов и перекрёстных ссылок. Скомпилированный артефакт уже хорошо структурирован, однако современные декомпиляторы этим не пользуются — они заново строят раздутую базу данных кодовых связей поверх уже упорядоченных данных.
«Если я могу напрямую извлечь любую кодовую связь из APK за миллисекунды — зачем вообще нужна предобработка?» — автор Droid ASC
Droid ASC решает проблему через zero-index архитектуру, декомпрессию потока Deflate по требованию и использование оптимизаций компилятора R8.
Как это работает: четыре ключевые технологии
graph TD
A[APK-файл] --> B[Прямой пробинг Deflate-потока]
B --> C[Huffman lookup tables]
C --> D[R8-оптимизации: deduplication + relocation]
D --> E[O1 — поиск инструкции]
E --> F[Минимальный DEX в памяти]
F --> G[Мгновенная декомпиляция]
1. Прямой пробинг Deflate-потока
Вместо полной распаковки APK инструмент строит плотные таблицы Huffman lookup для извлечения ключевых метаданных, не касаясь нерелевантных блоков данных.
2. Эксплуатация оптимизаций R8
Компилятор R8 применяет детерминированное перемещение констант и дедупликацию инструкций, оставляя после себя плотно упакованные физические структуры. Droid ASC использует это поведение компилятора для молниеносного кросс-DEX поиска кода.
3. O(1)-примитив локации инструкций
Для сопоставления сырых смещений байт-кода с методами реализован O(1)-примитив поиска инструкций — разрешение метода за константное время без построения тяжёлых таблиц маппинга.
4. Минимальный DEX в памяти
При попадании в цель Droid ASC извлекает только конкретные байткоды и их зависимости, динамически реконструируя минимальный и самодостаточный DEX целиком в памяти для мгновенной декомпиляции.
Сравнение с jadx
В тестах глобальный поиск jadx по 352 МБ APK (пакет Douyin) завершился аварийно с ошибкой OOM на 49%, тогда как Droid ASC выдал результат за 1,79 секунды.
По итогам бенчмарков: скорость поиска выше в 269 раз, декомпиляция быстрее в 222 раза, эффективность памяти лучше в 125 раз. При этом Droid ASC не использует дисковый кеш вообще, тогда как jadx записывает от 119 до 322 МБ индексов.
| Параметр | Droid ASC | jadx |
|---|---|---|
| Поиск по 352 МБ APK | 1,79 с | OOM (падение) |
| Декомпиляция класса | 177 мс | ~39 с |
| RAM | 141 МБ | ~17 ГБ |
| Дисковый кеш | 0 МБ | 119–322 МБ |
| Предобработка | Нет | Десятки минут |
Установка и базовые команды
Инструмент доступен на PyPI и устанавливается одной командой:
pip install droidasc
Основные сценарии использования через CLI:
# Декомпилировать конкретный класс из APK
droidasc getclass app.apk com.poc.Main -o Main.java
# Прочитать AndroidManifest.xml
droidasc getmanifest app.apk -o AndroidManifest.xml
# Найти все вхождения строки
droidasc findrefs app.apk string token -o string_refs.txt
# Найти ссылки на метод с нечётким поиском класса
droidasc findrefs app.apk method notify --class MainActivity --fuzzy-class
# Запустить графический интерфейс
droidasc app.apk --gui
Значение для отрасли
Ключевые преимущества инструмента — zero indexing, декомпрессия по требованию и использование оптимизаций R8, что существенно повышает эффективность масштабного скрининга чувствительных данных и картирования API attack surface.
Для пентестеров, red team и охотников за багами в мобильном сегменте эта эффективность напрямую конвертируется в увеличение охвата тестирования и, следовательно, в рост потенциального дохода в средах с оплатой за уязвимость.
Появление Droid ASC меняет сами основания жанра: декомпилятор перестаёт быть «индексирующей машиной» и становится легковесным инструментом запроса к скомпилированному артефакту как к базе данных. Это особенно актуально в контексте роста AI-агентов для автоматического анализа безопасности — именно на эту аудиторию инструмент и рассчитан.
Репозиторий: github.com/MG1937/ASC · PyPI: pip install droidasc