apktool作用: 主要查看res文件下xml文件、AndroidManifest.xml和图片(如果直接解压.apk文件,xml文件打开全部是乱码)
dex2jar作用: 将apk反编译成Java源码(classes.dex转化成jar文件)
jd-gui作用: 查看apk中classes.dex转化成出的jar文件,即源码文件
apktool 常用指令
1.反编译apk: apktool d apk路径 -o 解压路径
其他:
-f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。
-o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹)。
-s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。
-r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。
2.重新编译打包(未校验): apktool b 解压后的文件夹路径
dex2jar 常用指令
前提条件: 将dex文件放入dex2jar根目录,终端控制进入dex2jar根目录
win指令: d2j-dex2jar.bar 目标dex
mac指令: ./d2j-dex2jar.sh 目标dex
附:MAC环境下反编译流程