准备工作
-
下载apktool根据提示安装
- 复制 wrapper script 中的代码,另存为本地 "apktool" 文件,无后缀
- 下载 apktoolxxx.xxxx.jar,修改名字为 "apktool.jar"
-
将 "apktool" 和 "apktool.jar"拖进"/usr/local/bin"目录下,或命令行之行:
$ sudo -i cp ~/Desktop/apktool ~/../../usr/local/bin
$ sudo -i cp ~/Desktop/apktool.jar ~/../../usr/local/bin
添加它俩权限:
$ sudo chmod +x apktool
$ sudo chmod +x apktool.jar-
运行,查看是否安装成功
apktool -v
- 下载 dex2jar,解压,修改权限:
chmod +x /home/.../d2j-dex2jar.sh /home/.../d2j_invoke.sh
开始反编译
-
准备.dex文件
- 新建 apk 文件夹,放入 apk 文件(文件名不可包含中文,例子是maple.apk),cd进目录执行:
apktool d maple.apk
在apk文件夹下生成xxx文件夹,内部包含AndroidManifest.xml, assets, build, lib, original, res等文件
- 新建 apk 文件夹,放入 apk 文件(文件名不可包含中文,例子是maple.apk),cd进目录执行:
-
反编译.dex
-
将.apk后缀改成.rar,解压,拿到classes.dex文件,(多个dex文件则多次执行第二步)
-
cd进dex2jar文件夹,执行:
./d2j-dex2jar.sh /Users/fred/Desktop/apk/classes.dex
在dex2jar文件夹下生成 maple.jar
得到结果
-
-
查看jar文件
-
用JD_GUI,打开maple.jar文件,查看java代码
-
当出现//INTERNAL ERROR时,下载Luyten 再打开即可
-
用JD_GUI,打开maple.jar文件,查看java代码
参考