在Mac下反编译apk
谷歌本身提供了相关工具进行apk的反编译,但是随着代码混淆和apk安全加固的发展,反编译已经很少需要使用到,但是获取一个apk的资源文件等,使用反编译是最小代价的。
谷歌提供的反编译工具,本身是跨平台的,可以在windows/mac/linux上都可以运行,因为大部分工具是jar形式的。
下文以mac下就如何反编译apk开展:
apktool
apktool,是获取资源文件等工具,如提取出图标,图片等资源,当然还有布局文件,动画等等xml文件。
下载脚本,保存为apktool(注意修改文件后缀为空);
下载最新的apktool.jar;
将下载的jar包重命名为apktool.jar;
- 将下载的apktool和apktool.jar移到/usr/local/bin目录;
修改这2个文件等权限;
将两个文件的权限设为可执行,执行命令`chmod +x apktool apktool.jar`
验证是否apktool安装成功
对指定的apk进行反编译,获取资源文件
`apktool -d <你要反编译的apk>.apk`
dex2jar
dex2jar,是把虚拟机编译成的dex文件为jar后,可以通过jd-gui,直接打开浏览源码。
- 下载并解压dex2jar;
- 为dex2jar添加权限
chmod a+x
- 将class.dex拷贝到dex2jar文件夹下
- 执行命令
sh d2j-dex2jar.sh classes.dex得到classes-dex2jar.jar
jd-gui
jd-gui,可以查看dex2jar编译出的jar,反编译成源码。