Sonata

Droid ASC: декомпиляция Android APK без предобработки индексов

image source

При декомпиляции крупных Android APK стандартный подход — долгое ожидание: инструменты тратят гигабайты памяти и десятки минут на построение тяжёлых глобальных индексов, хотя скомпилированный артефакт уже структурирован и декомпиляторы это не используют.

Droid ASC запрашивает скомпилированный артефакт как базу данных напрямую: анализирует Deflate-поток без полной инфляции, строит плотные таблицы Хаффмана, использует особенности оптимизаций R8 и реализует поиск инструкций за O(1) для быстрого поиска и декомпиляции кода.

На демонстрации с коммерческим APK размером 352 МБ Droid ASC выполняет глобальный поиск перекрёстных ссылок за 1.79 секунды, декомпилирует классы за 177 миллисекунд, используя всего 141 МБ памяти — без предобработки и построения индексов.

GitHub ★ 997

Загрузка страницы