一、需要工具
- apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
- dex2jar:将反编译后的classes.dex文件转化为.jar文件。
- jd-gui:用于将.jar文件转换成java代码。
二、apktool安装:
下载地址:https://ibotpeaches.github.io/Apktool/install/,看页面说明安装。
apktool d -s xxx.apk //编译apk
三、dex2jar安装:
源码下载地址:https://github.com/pxb1988/dex2jar。
这里做个说明:很多地方可以下载,如:https://sourceforge.net/projects/dex2jar/files/,
但是这些使用的时候会报错,像一下这样的:
dex2jar classes.dex -> ./classes-dex2jar.jar Detail Error Information in Fil
看错误日志说的是:
java.lang.RuntimeException: can not merge I and Z
具体原因看:https://www.jianshu.com/p/0306cb947d7a
现在是需要下载源码,编译修复好的源码拿到工具。( 别人修复了,但是没有把工具直接放出来,我们编译源码生成就好了)
安装gradle:brew install gradle
编译源码:gradle clean distZip
编译成功后,脚本会出现在/dex-tools/build/distributions/目录下
sh d2j-dex2jar.sh classes.dex
//有时候可能说没有权限,sudo chmod +x d2j_invoke.sh
四、jd-gui安装:
下载地址:http://java-decompiler.github.io/
按版本下载就好。
把上一步生成的jar包拖进去窗口查看就好