准备工作:安装ApkTool、dex2jar、JD-GUI
安装ApkTool
1、下载ApkTool。大家可以从 https://ibotpeaches.github.io/Apktool/install/ 上下载ApkTool
2、安装ApkTool
(1)将下载好的apktool文件与apktool_2.4.0.jar文件准备好,并将apktool_2.4.0.jar更名为apktool.jar;
(2)将apktool.jar与apktool移动到/usr/local/bin目录下(可以通过在终端中输出命令open /usr/local/bin来打开这个目录);
(3)为上述两个文件增加可执行权限,即在终端中输入并执行:
chmod +x apktool.jar
chmod +x apktool
(4)在终端输入apktool看是否可以运行,如果不可以需要在系统偏好设置中打开安全与隐私中点击仍要运行apktool.jar;
安装dex2jar
大家可以从https://sourceforge.net/projects/dex2jar/files/ 上下载dex2jar
安装JD-GUI
大家可以从 http://jd.benow.ca/ 上下载JD-GUI
1、使用ApkTool反编译APK得到xml文件、AndroidManifest.xml和图片
cd [apkdir]
apktool d xxx.apk //该命令执行后会在同级目录下生成一个与你编译的apk同名的目录
通过上述命令就可以反编译apk了。
2、dex2jar将dex反编译成jar
第一步,解压apk获得dex文件
使用解压软件将apk进行解压(直接把后缀名改为.zip),得到classes.dex文件。有时有多个classes.dex文件(这是因为应用了MultiDex所致)。将classes.dex文件拷贝到下载解压的dex2jar目录下。然后执行如下代码进行反编译:
cd [你的dex2jar解压目录]
sh d2j-dex2jar.sh classes.dex
sh d2j-dex2jar.sh classes2.dex
通过上述命令会得到一个或多个.jar文件(一个classes.dex产生一个jar文件)
3、使用JD-GUI查看反编译后的程序源码
将dex转换成jar之后接下来我们就可以使用JD-GUI来查看反编译后的程序源码了
操作步骤很简单,只需双击运行jd-gui-1.4.0.jar,然后将classes-dex2jar.jar拖拽到JD-GUI界面上即可