1.使用工具
-
apktool
资源文件获取,可以提取出图片文件和布局文件进行使用查看 -
dex2jar(源码文件获取)
将apk反编译成java源码(classes.dex转化成jar文件) -
jd-gui (源码查看)
查看APK中classes.dex转化成出的jar文件,即源码文件
2.工具下载
apktool下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads
dex2jar下载地址:http://sourceforge.net/projects/dex2jar/files/
jd-gui下载地址:http://jd.benow.ca/
为了方便进行反编译,我们将上述下载好的3个工具统一放到一个文件夹中,然后将【dex2jar-2.0.zip】和【jd-gui-windows-1.3.0.zip】分别解压到当前文件夹,例如:
3.反编译流程
此处需要反编译的apk是: MMTS-release-1.0.2.apk
3.1 使用apktool反编译apk得到图片、XML配置、语言资源等文件
命令行cd到下载目录 E:\AndroidDevelopTool\Android反编译工具包,执行下面的命令
java -jar apktool_2.0.1.jar d -f E:\AndroidDevelopTool\Android反编译工具包\测试apk\MMTS-release-1.0.2.apk -o MMTS
-f 需要反编译的apk,此处全路径
-o 反编译的输出文件路径,此处是当前目录的MMTS目录
打开MMTS文件夹,就可以看到反编译后的生成的文件,如下图所示:
3.2 使用dex2jar反编译apk得到Java源代码
将要反编译的APK后缀名改为 .zip,并解压,得到其中的classes.dex文件(它就是java文件编译再通过dx工具打包而成的)
将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,如下图所示:
然后在该目录当前文件路径下输入下列命令
d2j-dex2jar classes.dex
就可以得到classes.dex文件反编译后的classes-dex2jar.jar文件,最后使用【jd-gui】工具打开classes-dex2jar.jar文件, 就能查看java源代码了
注意
classes.dex文件反编译后生成classes-dex2jar.jar ,但由于每次执行都是生成同一个classes-dex2jar.jar文件,已经存在过后,并不能覆盖生成classes-dex2jar.jar,必须删除classes-dex2jar.jar文件,再重新生成。
参考 https://blog.csdn.net/s13383754499/article/details/78914592