关于apk 逆向中的一些工具的使用,看了不少文章,也使用过有很长一段时间了,今天对此做一总结:
几种文件之间的转换命令:
- odex -> smali
java -jar baksmali.jar -a <api_level> -x <odex_file> -d <framework_dir>
- smali ->dex
java -Xmax512M -jar samli-2.0.jar <smali_dir> -o classes.dex
- dex ->odex
在android平台下使用命令dexopt-wrapper实现:
dexopt-wrapper 123.apk 123.odex
- 对odex的签名,用于对修改后的odex文件,使用源文件的一部分文件头:
busybox dd if=android.policy.odex.bak of=android.policy.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
- 对apk的签名 使用专门的签名工具:
java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk
- Apktools的使用
Apktool 是apk的逆向分析工具,可用于对apk的打包 解包。
APKtool 软件包有 2 个程序组成:apktool.jar 和 aapt 运行 apktools.jar 需要 java 环境(1.6.0 版本以上)。
apktool.jar 用于解包,apktool.jar 和 aapt.exe 联合用于打包。
java -jar /data/dtgy.package/bin/apktool.jar d -f -s --keep-broken-res $APK_FILE $APK_DIR
For additional info, see
- AXMLPrinter2.jar
java -jar AXMLPrinter2.jar AndroidManifest.xml #解开在apk 中的 AndroidManifest.xml
- dex2jar 一个工具集,可用来反编译dex文件到class等,然后结合jd-gui查看java代码
示例:
./dex2jar-2.0/d2j-dex2jar.sh classes.dex -o 1.zip
下载链接
- Apktool工具下载链接
- smali 工具
- dexopt-wrapper 源码
- 工具下载链接:
- dex2jar