参考链接:https://zhuanlan.zhihu.com/p/51260384
首先准备好三个工具
- apktool:反编译apk
- dex2jar:将dex文件反编译为jar
- jd-gui:查看jar源码
首先将.apk文件后缀名改为.zip或.rar解压
将apk文件放到反编译工具所在文件夹
apktool.bat d 文件名.apk
一定要保证apktool.bat和apktoo.jar同时在本目录下,之后就会产生文件名同名文件夹,Xml文件以及AndroidManifest文件可读
用dex2jar反编译查看Java源代码
拿出之前解压出的.dex文件放入dex2jar文件夹下,比如classes.dex,有可能是一个或几个dex文件,运行如下命令:
.\d2j-dex2jar.bat classes.dex
发现生成了classes-dex2jar.jar文件,即为源码,可以用jd-gui或其他工具直接打开查看
修改后重新打包
在apktool文件夹执行
apktool b 文件夹名 XXX.apk
发现在同名文件夹下出现了一个dist目录,即为打包好的apk
常见错误
com.googlecode.d2j.DexException: not support version.
查阅资料得知为头校验,打开dex文件,将头部的039(或者其他)改为036
反编译过程中大部分错误均为工具不是最新版本,更新到最新版本可以解决