一、需要的工具
- apktool:反编译APK文件,得到classes.dex文件,同时也能获取到资源文件以及布局文件。
- dex2jar:将反编译后的classes.dex文件转化为.jar文件。
- jd-gui:用于将.jar文件转换成java代码。
二、反编译步骤
第一步:使用apktool工具对APK进行反编译
1. 下载apktool

注:mac要保留为.sh
cd /usr/local/bin
2. 把下载好的apktool脚本和apktool.jar文件移动到 /usr/local/bin 文件夹下


注明:apktool是.sh
3. 使用命令chmod +x 分别对apktool和apktool.jar文件进行提权
4. 运行apoktool.sh脚本进行反编译
①. 把你需要反编译的apk文件也复制到 /usr/local/bin 文件夹下,确保apktool、apktool.jar以及apk文件都在/usr/local/bin目录下
②. 终端输入命令 apktool d xxx.apk回车,等待执行完毕

但是我们在反编译apk后的文件夹里并没有看到classes.dex文件,这时候就需要在上述命令行添加-s,表示禁止将dex文件解码成smali
![]()

第二步:使用dex2jar工具把classes.dex文件转化成.jar文件
1. 下载dex2jar并解压 // https://sourceforge.net/projects/dex2jar/files/
2. 进入到你解压后的dex2jar文件夹下(根据你的实际情况文件夹位置不一样),如:
![]()
3. 把classes.dex文件复制到解压后的dex2jar文件夹下,终端执行命令sh d2j-dex2jar.sh classes.dex

//如有权限问题输入 sudo chmod +x d2j_invoke.sh
3. 执行完毕后,会在文件夹下生成一个.jar文件,里面就是java源码

第三步:使用JD-GUI软件查看jar包下的java源码
1.下载并安装jd-gui // http://java-decompiler.github.io
2. 打开安装好的JD-GUI,直接把第二步生成的.jar文件拖进去,就能看到反编译出来的java源码了

本文详细介绍使用apktool、dex2jar及JD-GUI进行APK反编译的步骤,从反编译APK文件获取classes.dex,到将其转换为.jar文件,最后通过JD-GUI查看Java源码。
2934

被折叠的 条评论
为什么被折叠?



