Проекты

ByteCode (JVM class) Info Plugin

В рамках проекта чтения содержимого APK файла, было реализовано несколько плагинов для чтения часто используемых форматов файлов внутри APK архива. Итого разобраны форматы Davlik (.dex), ELF (.so), и JavaClass (.class).

Данный плагин представляет из себя визуализацию результата работы сборки ByteCodeReader, исходный код которой доступен на GitHub. Интерфейс плагина доступен в меню: View→Executables→ByteCode View.

Динамические структуры Constants и All Attributes представлены в интерфейсе динамических таблиц, с возможностью просмотра исходных и преобразованных данных. Некоторые секции можно просмотреть в исходном виде. Если такая возможность поддерживается, то в контекстном меню элемента дерева окна "Class View", появится элемент "Bin View". Так-же, если для элемента нет доступного интерфейса, но есть возможность просмотра бинарного содержимого, то откроется окно просмотра секции файла в исходном виде. На момент написания декодирование объектов не поддерживается, но достаточно легко читается. Пример: [[Ljava/lang/String; в декодированном варианте: java.lang.String[][].

Настройки

  • MaxArrayDisplay 10 — Максимальная визуализация массивов.
  • ShowAsHexValue False — Отображать цифры в виде десятичной или щестнадцатеричной системы исчисления.
  • ShowBaseMetaTables False — Отображать в динамических структурах басзовые таблицы, вместо строго типизированных (Ближе к бинарному виду файла).
  • MonitorFileChange False — При обновлении файла на жёстком диске, файл автоматом обновится во всех открытых окнах отображения данных из текущего файла

Внешние методы

  • Type GetEntityType() — Получить тип ClassFile
  • Object CreateEntityInstance(Object dataItem) — Создать экземпляр класса ClassFile, передав в качестве аргумента путь к файлу на диске
  • Object[] GetSearchObjects() — Получить массив файлов с расширением *.class из папки, выбираемой в пользовательском интерфейсе.

Теги:

Скачать

Ссылки

Родительские файлы

Дочерние файлы