Перейти к содержимому
Aback Tools Logo

Просмотр байткода DEX

Загрузите DEX-файл (Dalvik Executable), чтобы увидеть его структуру байткода, инструкции Dalvik, опкоды, мнемоники, использование регистров и определения методов. Анализируйте полную структуру DEX, включая поля заголовка, таблицы строк, таблицы типов/прототипов/полей/методов, определения классов и полную дизассемблирование на уровне инструкций. Бесплатно, приватно и без регистрации.

DEX Bytecode Viewer
Upload a DEX (Dalvik Executable) file to view its bytecode structure, Dalvik instructions, method definitions, register usage, and more. All parsing is local and private.

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 в три этапа, полностью в вашем браузере:

  1. Загрузка файла и бинарный разбор: Загрузите файл .dex (или извлеките classes.dex из .apk). Просмотрщик читает заголовок DEX для поиска всех разделов данных и разбирает ID строк, ID типов, ID прототипов, ID полей, ID методов и определения классов согласно стандартной спецификации бинарного формата DEX.
  2. Дизассемблирование байткода: Для каждого метода, содержащего код, просмотрщик читает структуру элемента кода (число регистров, число аргументов, массив инструкций) и дизассемблирует каждое 16-битное слово инструкции. Каждый опкод сопоставляется со своей мнемоникой Dalvik (move, add-int, invoke-virtual и др.), а операнды декодируются согласно формату инструкции (12x, 35c, 3rc и др.).
  3. Структурированный вывод: Разобранные данные отображаются в четырёх режимах: Классы (раскрывающееся дерево с методами и байткодом), Методы (плоская таблица всех методов с прототипами), Строки (все строковые константы в 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-файлов, сколько нужно, сколько угодно раз. Вся обработка выполняется в вашем браузере.