androd的反编译主要涉及到3个工具,都以Mac版为例进行介绍:
ApkTool 解包、打包工具
其主要作用是反编译资源、manifest等,并不是反编译代码,反编译代码用后面的工具
- 安装
1. 将下载好的apktool文件与apktool_2.3.1.jar文件准备好,并将apktool_2.3.1.jar更名为apktool.jar;
2. 将apktool.jar与apktool移动到/usr/local/bin目录下(可以通过在终端中输出命令open /usr/local/bin来打开这个目录);
3. 为上述两个文件增加可执行权限,即在终端中输入并执行: chmod +x apktool.jar
4. chmod +x apktool
5. 在终端输入apktool看是否可以运行,如果不可以需要在系统偏好设置中打开安全与隐私中点击仍要运行apktool.jar;
- 相关命令
// 提取资源
apktool d <apk_name>
// 提取资源并指定输出目录
apktool d <apk_name> -o <foleder_name>
// 重新打包apk
apktool b <folder_name>
//重新打包apk并指定输出apk名字
apktool b <folder_name> -o <new_apk_name>
dex2jar
- 安装
大家可以从https://github.com/pxb1988/dex2jar
- 常用命令
// 将 dex 文件转成 jar 文件
d2j-dex2jar <dex_name> -o <jar_name>
//将apk文件转成jar文件
sh d2j-dex2jar.sh -f <apk_name>
直接反编译apk方法
sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
And the output file will be apk_to_decompile-dex2jar.jar.
下载JD-GUI
在第二步中会反编译出jar文件,利用这个工具可以反编译jar
- 安装
大家可以从http://jd.benow.ca/上下载JD-GUI
- 使用
在jar文件上右键、用jd-GUI打开即可