使用到的工具:
Apktool:用来获取图片、xml等资源文件
dex2jar:把dex文件转换成jar包
JD-GUI:反编译jar包,获取源代码
JADX-GUI:方便的jadx工具,可以直接反编译apk
文末有这几个工具的下载地址。
这里拿csdn的apk作示例。
第一种方式. 使用dex2jar、JD-GUI和apktool:
第一步. 反编译获取源代码:
1. 解压你要反编译的apk文件(apk文件其实是个压缩文件)。
2. 进入apk解压后的目录,拷贝classes.dex文件,粘贴到dex2jar目录。
3. 打开cmd,把路径切换到dex2jar目录,运行命令: d2j-dex2jar classes.dex ,成功后会在dex2jar目录生成一个classes-dex2jar.jar文件。
4. 打开JD-GUI,然后把刚才生成的classes-dex2jar.jar文件拖进去就可以查看源代码了。
第二步.获取图片、xml等资源文件:
apktool工具是一个jar包,不需要解压。
打开cmd,进入apktool工具根目录,运行命令: java -jar apktool_2.0.2.jar d -f csdn.apk -o cccc,
其中cccc是破解后的文件输出目录,可以自定义,不需要自己创建。
完成后会发现apktool工具根目录下多了一个cccc文件夹,里面的图标、xml文件等就可以直接使用了。
如果你觉得上面这些步骤太麻烦的话,这里有一个集成了以上几种工具的一步到位反编译apk工具onekey-decompile-apk。
下载地址:https://github.com/ufologist/onekey-decompile-apk,使用方法里面有详细介绍。
第二种方式 使用jadx-gui:
jadx-gui是一个图形话反编译工具,可反编译apk文件,使用非常简便 。能获取源码,获取xml文件,不过不能获取图片。
使用方法:下载了之后解压,进入解压后的目录,运行bin文件夹里面的jadx-gui.bat,然后选择你要反编译的apk所在的位置就ok了。
jadx-gui和jd-gui反编译后的源码有一点不一样:1. 有些变量jd-gui会有初始化值;
2. 有些jd-gui会反编译出错,而jadx-gui能成功。
所以根据情况混合使用吧。
工具下载地址:
github上一个反编译工具集合的帖子:
https://github.com/Juude/droidReverse
JADX-GUI:
http://sourceforge.net/projects/jadx
如果你懒得一个个去下载,这里有打包好的:
http://download.youkuaiyun.com/detail/good_dev/9348245