1. 需要用到的工具
apktool:反编译得到
classes.dex
文件;dex2jar:将上一步中得到大
dex
文件转换成jar
文件;jd-gui:将
jar
文件转换成java
文件
2. 反编译 apk
得到 classes.dex
文件
-
2.1. 下载 apktool,官网
-
2.1.1. 右键步骤1中的
wrapper script
下载并保存脚本文件,文件保存为apktool
,无后缀名;
下载 apktool 脚本文件
-
2.1.2. 点击步骤2中的
find newest here
,然后下载最新的apktool_x.x.x.jar
文件,重命名为apktool.jar
;
下载 apktool.jar 文件
-
2.1.3. 将两个文件移动到同一目录下(我的是在
apk-returnback
),然后更改他们的权限为可执行;
chmod +x apktool
chmod +x apktool.jar
- 2.2. 将要反编译的 apk 文件移动到给文件夹下,将其反编译成
classes.dex
文件;
./apktool d -s xxx.apk

3. 将反编译得到的 classes.dex
文件转换成 jar
文件
-
3.1. 下载 dex2jar ,官网;
下载 dex2jar
-
3.2. 将下载好的压缩包移动到
apk-retunback
目录下,解压,之后将上一步得到的classes.dex
文件移动到解压后的目录中;
3.3. 执行命令,将其转换成 jar
文件;
sh d2j-dex2jar.sh classes.dex

- 3.4. 在执行过程中可能遇到权限问题,修改权限重新执行上一步即可;
sudo chmod -R 777 d2j-baksmali.sh
sudo chmod -R 777 d2j_invoke.sh
4. 将 jar
文件转换成 java
文件
-
4.1. 下载 jd-gui 官网;
下载 jd-gui
-
4.2. 将下载好的压缩包移动到
apk-returnback
中,并解压;
解压得到app
-
4.3. 打开
JD-GUI.app
,将上一步生成的jar
文件拖拽到里面即可看到反编译成的 Java代码。
网友评论