libsmali-java
libsmali-java provides libraries for smali/baksmali, an assembler and disassembler for Android's dex format used by Dalvik, Android's Java VM. It supports full dex format functionality including annotations, debug info, and line info.
Description
libsmali-java is a Java library package containing the core components for smali and baksmali tools. These tools are essential for working with Android's dex (Dalvik Executable) format, enabling developers and security researchers to disassemble and reassemble Android application bytecode.
The package supports the complete feature set of the dex format, including annotations, debug information, and line numbers. This makes it valuable for reverse engineering Android APKs, modifying application behavior, or analyzing malware.
Use cases include deodexing odex/oat files, disassembling dex files for code inspection, and assembling smali code back into dex files for repackaging modified APKs.
How It Works
smali/baksmali operates on Android's dex format using syntax based on Jasmin/dedexer. baksmali disassembles dex bytecode into human-readable smali assembly code, preserving annotations, debug info, and line information. smali performs the reverse, assembling smali files back into dex bytecode. The tools leverage ANTLR3 for parsing and support full dex specification features.
Installation
sudo apt install libsmali-javaFlags
Examples
baksmali -hbaksmali deodexbaksmali disassemblebaksmali dumpbaksmali listsmali -hsmali assemble