В рамках проекта чтения содержимого APK файла, было реализовано несколько плагинов для чтения часто используемых форматов файлов внутри APK архива. Итого разобраны форматы Davlik (.dex), ELF (.so), и JavaClass (.class).
Данный плагин представляет из себя визуализацию результата работы сборки DexReader, исходный код которой доступен на GitHub. Интерфейс плагина доступен в меню: View→Executables→Davlik (dex) View
.
Самое интересное содержимое DEX файла, находится в элементе дерева "Sections". При двойном нажатии левой клавиши мыши или клавиши Enter на клавиатуре, откроется окно с динамическими структурами DEX файла. На момент написания декодирование объектов не поддерживается, но достаточно легко читается. Пример: [[Ljava/lang/String;
в декодированном варианте: java.lang.String[][]
.
MaxArrayDisplay
False — Максимальная визуализация массивов.ShowAsHexValue
False — Отображать цифры в виде десятичной или щестнадцатеричной системы исчисления.ShowBaseMetaTables
False — Отображать в динамических структурах басзовые таблицы, вместо строго типизированных (Ближе к бинарному виду файла).MonitorFileChange
False — При обновлении файла на жёстком диске, файл автоматом обновится во всех открытых окнах отображения данных из текущего файлаType GetEntityType()
— Получить тип DexReaderObject CreateEntityInstance(Object dataItem)
— Создать экземпляр класса DexReader, передав в качестве аргумента путь к файлу на дискеObject[] GetSearchObjects()
— Получить массив файлов с расширением *.dex из папки, выбираемой в пользовательском интерфейсе.