一、反编译工具
1、apktool:获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件。
2、dex2jar:将APK反编译成Java源码(将classes.dex转化为jar文件)。
3、jd-gui:查看dex2jar中转换后的jar文件。
二、注意事项
1、在反编译的代码看到a、b、c等等,这些是apk发布时进行混淆了,然后进行一些加密,或者使用第三方的加密平台,用的比较多的“爱加密”,有兴趣的也自行百度查看更加详细的介绍!apk进行混淆后里面的代码就没有必要再看了!
2、切勿拿反编译来做违法的事,比如把人家的APK重新打包后使用自己的签名然后发布到相关市场。
3、我们是参考别人的代码,而不是完全拷贝!!!切记!!
三、apktool
1.1 官方链接
链接:https://bitbucket.org/iBotPeaches/apktool/downloads/
1.2 下载安装
三种不同系统的安装教程:https://ibotpeaches.github.io/Apktool/install/
![请添加图片描述](https://img-blog.csdnimg.cn/ab35d70ce3974330827caeccd3220481.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
我使用的是Windows系统,这里我以Windows为例子来进行讲解如何安装。
1、先创建一个名为apktool的文件夹,用来存放apktool的文件,再根据官方链接下载最新的jar(apktool_2.6.0.jar),再将jar 重命名为 apktool.jar
![请添加图片描述](https://img-blog.csdnimg.cn/a9254495ae9641a8b3478d0e1794fe9e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
2、在apktool的文件夹里创建apktool.txt文件,再点击wrapper script链接,进入脚本复制内容到apktool.txt文件里,完成后将apktool.txt更改为apktool.bat即可。![请添加图片描述](https://img-blog.csdnimg.cn/ef5e599db80a4466a707361d2489ca4f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
![请添加图片描述](https://img-blog.csdnimg.cn/4cc47cd507be494692932def8fe76b89.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
3、将两个文件 apktool.jar 和 apktool.bat 移动到你的 Windows 目录(通常是C://Windows)。如果你无权访问C://Windows,你可以将这两个文件放在apktool.txt文件,然后将该目录添加到你的环境变量系统 PATH 变量中。
4、win + r 再输入cmd 打开命令提示符,直接输入apktool 回车即可。
1.3 使用
在命令提示符里找到apk存放的目录,然后输入apktool.bat d Wi-Fi.apk(Wi-Fi指的是apk名) ,Enter回车即可。然后目录下就会出现同apk名的文件夹,里面就是我们所需的资源文件。
![请添加图片描述](https://img-blog.csdnimg.cn/0822632ed99b4dce803214389b54fa06.png)
四、dex2jar
1.1 官方链接
链接:https://sourceforge.net/projects/dex2jar/files/
1.2 下载安装
1、下载最新dex2jar(dex2jar-2.0.zip)保存到文件夹里,并解压即可。
![请添加图片描述](https://img-blog.csdnimg.cn/02fd93bf1cbf4d6bbe90d29acc67b4de.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
1.3 使用
1、将Wi-Fi.apk的后缀名改为Wi-Fi.zip并解压得到Wi-Fi文件夹。
![请添加图片描述](https://img-blog.csdnimg.cn/32656610c78746bf8c5053c822ba55e2.png)
2、在Wi-Fi文件夹里有一个classes.dex文件,将classes.dex文件复制到dex2jar-2.0文件夹里。
![请添加图片描述](https://img-blog.csdnimg.cn/bd2b918143854cb98f1e205b84e7ef5b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
![请添加图片描述](https://img-blog.csdnimg.cn/b361582330194d688b87b09bbcbe35ef.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
3、打开命令提示符,找到dex2jar-2.0目录,输入d2j-dex2jar.bat classes.dex 回车,这样我们就会得到一个classes-dex2jar.jar包,里面就是我们所需的java代码,但需要 jd-gui 打开来看。
![请添加图片描述](https://img-blog.csdnimg.cn/0ca1fcaebcc8407995fb2a5ddcbffac3.png)
![请添加图片描述](https://img-blog.csdnimg.cn/90b64d6f275f4a34a9677b5ad15a0744.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
五、jd-gui
1.1 官方链接
链接:http://java-decompiler.github.io/
1.2 下载安装
1、打开官方链接,找到 JD-GUI —> 点击Download —> 点击jd-gui-1.6.6.jar下载,保存到文件夹里,并解压即可。
![请添加图片描述](https://img-blog.csdnimg.cn/a6294c401ad247d29d877085fedc4ea2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
1.3 使用
1、在jd-gui-windows-1.6.6文件夹里打开 jd-gui.exe ,再找到 classes-dex2jar.jar 打开就可以看到代码了。
![请添加图片描述](https://img-blog.csdnimg.cn/073a7ce3033444d3ba1ec09f440f5bf7.png)
![请添加图片描述](https://img-blog.csdnimg.cn/237cf73a6f4847e4bb994badfbaa2426.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQW5kcm9pZCBIYWk=,size_20,color_FFFFFF,t_70,g_se,x_16)