一、需要的工具
apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
dex2jar:将反编译后的classes.dex文件转化为.jar文件。
jd-gui:用于将.jar文件转换成java代码。
二、反编译步骤
第一步:使用apktool工具对APK进行反编译
image
2. 把下载好的apktool脚本和apktool.jar文件移动到 /usr/local/bin 文件夹下
image
image
image
3. 使用命令chmod +x 分别对apktool和apktool.jar文件进行提权
//先进入到/usr/local/bin文件夹下
cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar
4. 测试是否成功,终端输入apktool,若成功,如下图
image
5. 运行apoktool脚本进行反编译
因为 apktool放到了usr/local/bin目录下,而 usr/local/bin 一般会被添加进环境变量中了(如果没有,则可自行添加,所以 apktool 是一个全局可执行的程序
//开始反编译目标APK文件
apktool d -s abc.apk -o
image
执行完毕后目录下会生成反编译apk的对应文件夹
image.png
第二步:使用dex2jar工具把classes.dex文件转化成.jar文件
2. 进入到你解压后的dex2jar文件夹下(根据你的实际情况文件夹位置不一样),如:
cd Downloads/dex2jar-2.0
**3. 把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令
./d2j-dex2jar.sh classes.dex
// 或者同时执行多个
./d2j-dex2jar.sh classes.dex classes2.dex classes3.dex
3. 执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码
image
第三步:使用JD-GUI软件查看jar包下的java源码
2. 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了
image
image