1、smali-1.2.6.jar 用途:.smali文件 转成 classes.dex文件
说明:.smali文件,类似于.class文件,可以用普通文本编辑器查看和修改。
用法举例:命令行:java -jar smali.jar classout/ -o classes.dex
下载:http://code.google.com/p/smali/downloads/list
2、baksmali-1.2.6.jar
用途:classes.dex文件 转成 .smali文件
说明:classes.dex不便于查看和理解,使用此工具转成的.smali文件易于阅读和修改。
用法:命令行:java -jar baksmali.jar -o classout/ classes.dex
下载:http://code.google.com/p/smali/downloads/list
3、AXMLPrinter2.jar
用途:xml文件 转成 普通文本文件(txt)
说明:apk中的xml文件被搞成二进制了,无法阅读,使用此工具转换后,可以查看正常的xml文件。
用法举例:命令行:java -jar AXMLPrinter2.jar main.xml > main.txt
下载:http://code.google.com/p/android4me/downloads/list
classes.dex是Java源码编译后生成的字节码文件。由于Android使用的dalvik虚拟机与标准的Java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。 目前有下面这几种反编译的工具:
dexdump
Dedexer
AXMLPrinter2
apktool
dex2jar + JD-GUI
smali