As part of the project to read the contents of the APK file, several plugins were implemented to read commonly used file formats inside the APK archive. Total parsed formats: Davlik (.dex), ELF (.so) and JavaClass (.class).
This plugin is a visualization of the result of the ByteCodeReader build, the source code of which is available on GitHub. The plugin interface is available in the menu:
Dynamic structures Constants and All Attributes are presented in the interface of dynamic tables, with the ability to view the original and transformed data. Some sections can be viewed in their original form. If this feature is supported, then the "Bin View" element will appear in the context menu of the tree element of the "Class View" window. Also, if the element does not have an available interface, but it is possible to view the binary content, then a window for viewing the file section in its original form will open. At the time of writing, object decoding is not supported, but is easy enough to read. Example:
[[Ljava/lang/String; in decoded variant:
MaxArrayDisplay10 — Mar array length that will be displayed.
ShowAsHexValueFalse — Display digits as decimal or hexadecimal.
ShowBaseMetaTablesFalse — Display base tables in dynamic structures instead of strongly typed ones (Closer to binary file type).
MonitorFileChangeFalse — When updating a file on the hard disk, the file will be automatically updated in all open windows for displaying data from the current file
Type GetEntityType()— Return ClassFile type
Object CreateEntityInstance(String filePath)— Create instance of ClassFile type transfer as argument path to file
String GetSearchObjects(String searchPath)— Return files array with extension *.class from folder.