一、工具说明
1.apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
2.dex2jar:将反编译后的classes.dex文件转化为.jar文件。
3.jd-gui:用于将.jar文件转换成java代码。
二、环境搭建步骤
1)下载apktool
1.按照截图步骤将apktool、apktool.jar文件放在 /usr/local/bin 文件夹下
2.使用命令「 chmod +x 」 分别对apktool和apktool.jar文件进行提权
chmod +x apktool
chmod +x apktool.jar
- 测试是否成功,终端输入apktool,正常提示则为成功
- 终端输入命令 「 apktool d xxx.apk
-o <folderPath>
」回车,等待执行完毕,会生成反编译apk的对应文件夹
-
-o <folderPath>
表示保存路径,不填则表示存放在默认【/Users/用户名/】目录下 但是我们在反编译apk后的文件夹里并没有看到classes.dex文件,这时候就需要在上述命令行添加-s,表示禁止将dex文件解码成smali
5.终端输入命令 「 apktool d -s xxx.apk」回车,则会生成classes.dex文件
2)使用dex2jar工具把classes.dex文件转化成.jar文件
- 下载dex2jar并解压
- 把classes.dex文件复制到解压后的dex2jar文件夹下,并进入dex2jar目录下,终端执行命令「 sh d2j-dex2jar.sh classes.dex」
- 执行完毕后,会在文件夹下生成一个classes-dex2jar.jar文件,里面就是java源码
3)使用JD-GUI软件查看jar包下的java源码
1.下载并安装jd-gui或者在终端输入命令「 brew cask install jd-gui」
- 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了
JD-GUI闪退主要原因是Java的jdk版本大于1.8