Просмотр байткода DEX
Загрузите DEX-файл (Dalvik Executable), чтобы увидеть его структуру байткода, инструкции Dalvik, опкоды, мнемоники, использование регистров и определения методов. Анализируйте полную структуру DEX, включая поля заголовка, таблицы строк, таблицы типов/прототипов/полей/методов, определения классов и полную дизассемблирование на уровне инструкций. Бесплатно, приватно и без регистрации.
Drop a DEX file here or click to browse
Supports .dex, .apk (extract classes.dex), and .odex files
Upload a DEX file to view its bytecode structure. The viewer parses the DEX header, string/type/proto/field/method tables, class definitions, and Dalvik bytecode instructions with full disassembly.
Зачем использовать наш просмотрщик байткода DEX?
- Полный разбор структуры DEX: Разбирает весь формат DEX-файла, включая заголовок, ID строк, ID типов, ID прототипов, ID полей, ID методов, определения классов и элементы кода. Просматривайте каждый структурный элемент DEX-файла с сырыми смещениями и размерами.
- Полное дизассемблирование байткода Dalvik: Дизассемблирует инструкции Dalvik в читаемые мнемоники с регистровыми операндами, ссылками на методы, дескрипторами типов и строковыми константами. Поддерживаются все основные форматы инструкций, включая 35c (invoke) и 3rc (invoke/range).
- Обозреватель дерева классов и методов: Перемещайтесь по классам и их методам в раскрывающемся дереве. Смотрите флаги доступа, суперкласс, интерфейсы, исходный файл, использование регистров и байткод на уровне инструкций для каждого метода. Раскрывайте любой класс или метод для полной информации.
- 100 % локально в браузере и приватно: Весь разбор и дизассемблирование DEX выполняются полностью в вашем браузере. Ваш DEX-файл, инструкции байткода и разобранная структура никогда не покидают устройство. Без загрузок, серверов и отслеживания — полностью безопасно для анализа любого DEX-файла.
Типичные случаи использования просмотрщика байткода DEX
- Анализ вредоносного кода и реверс-инжиниринг: Анализируйте APK-файлы Android на вредоносное поведение, изучая инструкции байткода Dalvik. Выявляйте подозрительные вызовы API, обфусцированные имена методов и необычные паттерны потока управления прямо в байткоде — без декомпиляции в Java.
- Аудит безопасности Android-приложений: Проверяйте Android-приложения на уязвимости, изучая их байткод. Ищите небезопасное использование API, жёстко закодированные учётные данные в таблице строк, некорректные проверки разрешений и незащищённый экспорт компонентов на уровне байткода DEX.
- Анализ обфускации и упаковщиков: Изучайте DEX-файлы на признаки обфускации: необычные имена классов и методов, код с интенсивной рефлексией, динамически вызываемые методы, паттерны шифрования строк и использование загрузчиков классов. Просмотр таблицы строк помогает выявить закодированные или зашифрованные нагрузки.
- Разработка и отладка Android: Разработчики Android могут изучать скомпилированный вывод DEX, чтобы проверить оптимизации ProGuard/R8, проверить встраивание методов, понять, как функции Kotlin компилируются в байткод, и отлаживать проблемы компиляции на уровне инструкций.
- Криминалистический анализ Android-приложений: Аналитики цифровой криминалистики могут изучать DEX-файлы с Android-устройств, чтобы понять поведение приложения, восстановить строковые константы и структуры классов и составить полную картину того, что делает приложение на уровне байткода.
- Учебное изучение байткода Dalvik: Узнайте, как работает виртуальная машина Dalvik, изучая реальные DEX-файлы. Разберитесь в форматах инструкций, регистровой архитектуре, диспетчеризации методов и разрешении типов. Идеально для студентов, изучающих внутреннее устройство Android и проектирование компиляторов.
Что такое DEX-файл?
DEX-файл (Dalvik Executable) — это формат скомпилированного байткода, используемый виртуальной машиной Dalvik в Android и её преемницей ART (Android Runtime). Каждое Android-приложение (файл .apk) содержит один или несколько файлов classes.dex, в которых хранится весь скомпилированный код Java/Kotlin. В отличие от стандартных файлов классов JVM, использующих стековую архитектуру, DEX-файлы используют регистровую архитектуру, где инструкции работают с именованными виртуальными регистрами (v0, v1 и т. д.). Такой регистровый дизайн обеспечивает более эффективную интерпретацию байткода и лучшую производительность на мобильных устройствах. Формат DEX был введён вместе с платформой Android в 2007 году и развивался в нескольких версиях (035, 037, 038, 039), каждая из которых добавляла новые опкоды и возможности оптимизации.
Как работает наш просмотрщик байткода DEX
Просмотрщик байткода DEX разбирает полный бинарный формат DEX и дизассемблирует инструкции Dalvik в три этапа, полностью в вашем браузере:
- Загрузка файла и бинарный разбор: Загрузите файл .dex (или извлеките classes.dex из .apk). Просмотрщик читает заголовок DEX для поиска всех разделов данных и разбирает ID строк, ID типов, ID прототипов, ID полей, ID методов и определения классов согласно стандартной спецификации бинарного формата DEX.
- Дизассемблирование байткода: Для каждого метода, содержащего код, просмотрщик читает структуру элемента кода (число регистров, число аргументов, массив инструкций) и дизассемблирует каждое 16-битное слово инструкции. Каждый опкод сопоставляется со своей мнемоникой Dalvik (move, add-int, invoke-virtual и др.), а операнды декодируются согласно формату инструкции (12x, 35c, 3rc и др.).
- Структурированный вывод: Разобранные данные отображаются в четырёх режимах: Классы (раскрывающееся дерево с методами и байткодом), Методы (плоская таблица всех методов с прототипами), Строки (все строковые константы в DEX-файле) и Заголовок (все поля заголовка DEX). Каждая инструкция показывает смещение, сырые байты, мнемонику и декодированные операнды.
Что можно увидеть в структуре DEX
- Заголовок DEX: магическое число (dex 035\0), контрольная сумма, подпись SHA-1, размер файла, размеры и смещения разделов всех таблиц данных.
- Пул строк: все строковые константы, используемые в DEX-файле: имена классов, имена методов, имена полей, строки дескрипторов и строковые литералы, используемые в инструкциях const-string.
- Таблицы типов и прототипов: дескрипторы типов (Ljava/lang/String;, I, [B и др.) и определения прототипов методов (тип возврата + типы параметров), задающие сигнатуры методов.
- Определения классов: каждый класс в DEX с флагами доступа (public, abstract, interface, enum), суперклассом, интерфейсами, исходным файлом и списками прямых и виртуальных методов.
- Байткод методов: полные списки инструкций Dalvik с числом регистров, регистрами аргументов, блоками try-catch и постраничным дизассемблированием, показывающим смещения, опкоды, мнемоники и декодированные операнды.
Приватность и безопасность
Этот инструмент полностью работает в вашем браузере на клиентском JavaScript. Загруженный DEX-файл, весь разобранный байткод, дизассемблированные инструкции, структуры классов, таблицы строк и результаты анализа никогда не отправляются на сервер, не хранятся в базах данных и не передаются по сети. Весь разбор, дизассемблирование и отображение выполняются локально на вашем устройстве. Нет вызовов API, аналитического отслеживания, cookie и сбора данных любого рода. Это делает инструмент полностью безопасным для анализа проприетарных Android-приложений, образцов вредоносного ПО или любых конфиденциальных DEX-файлов.
Часто задаваемые вопросы
DEX-файл (Dalvik Executable) содержит скомпилированный байткод приложений Android. Просмотр байткода DEX позволяет понять, что именно делает приложение на уровне инструкций: это полезно для анализа вредоносного ПО, аудита безопасности, реверс-инжиниринга, отладки проблем компиляции и изучения работы байткода Android.
Да. Каждый Android APK содержит файл classes.dex, который может разобрать просмотрщик байткода DEX. Извлеките classes.dex из любого APK (любым ZIP-архиватором) и загрузите его. Просмотрщик также принимает файлы .odex (оптимизированный DEX).
Дизассемблер поддерживает все основные форматы инструкций Dalvik, включая 10x, 11n, 12x, 21c, 22c, 22t, 23x, 35c, 3rc, 31i и 51l. Поддерживается более 200 опкодов во всех категориях инструкций.
Нет. Просмотрщик байткода DEX работает полностью в вашем браузере. Ваш DEX-файл, все разобранные данные, дизассемблированные инструкции и результаты анализа никогда не покидают устройство. Без загрузок на сервер, вызовов API и сбора данных.
Просмотрщик помогает выявить обфускацию, показывая реальные имена классов и методов, строковые константы и шаблоны инструкций. У обфусцированных DEX-файлов обычно короткие бессмысленные имена (a, b, c), видимые в таблицах классов и методов.
Таблица строк отображает все строковые константы, встроенные в DEX-файл, включая дескрипторы классов, имена методов и полей, дескрипторы типов, имена исходных файлов и строковые литералы, используемые в инструкциях const-string.
Да. Методы с обработкой исключений показывают информацию о блоках try-catch, включая начальный адрес, число инструкций и тип обработчика (перехваченный класс исключения или catch-all).
Формат 35c компактно кодирует до 5 регистров аргументов. Формат 3rc использует кодирование на основе диапазона с начальным регистром и количеством и применяется при большом числе аргументов или для конкретных диапазонов регистров.
Да — 100 % бесплатно, без регистрации, аккаунта и ограничений на использование. Анализируйте столько DEX-файлов, сколько нужно, сколько угодно раз. Вся обработка выполняется в вашем браузере.