1、Apktool,dex2jar,jd-gui下载地址
apktool:https://ibotpeaches.github.io/Apktool/
dex2jar:https://github.com/pxb1988/dex2jar
JD-GUI:http://java-decompiler.github.io/
2、Apktool的使用
使用Apktool
可以资源文件获取,可以提取出图片文件和布局文件进行使用查看,修改smali
文件及一些资源文件,在进行编译成APK
。
通过上面下载地址,下载Apktool
的jar
文件,将下载的jar重命名为apktool.jar
,调用apktool.jar
的脚本如下:
Windows下bat脚本:
https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat
如上面地址访问不了,可以访问这个:
https://www.cjavapy.com/download/5e8b2a30dc72d90263e632c8/
Linux下shell脚本:
https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
如上面地址访问不了,可以访问这个:
https://www.cjavapy.com/download/5e8b2b4fdc72d90263e632c9/
Mac下shell脚本:
https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/osx/apktool
如上面地址访问不了,可以访问这个:
https://www.cjavapy.com/download/5e8b2bebdc72d90263e632ca/
Llinux和Mac需要将脚本文件和apktool.jar
放到/usr/local/bin
目录下,也可以将文件所在目录添加到环境变量中。
Windows需要将bat脚本文件和apktool.jar
放到C://Windows
目录下,也可以将文件所在目录添加到PATH
环境变量中。
注意:Linux和Mac下要确保脚本和apktool.jar
有执行权限(chmod +x
)
1) 反编译命令
apktool.bat d -f [apk文件] [输出文件夹]
2) 编译命令
apktool.bat b 文件夹(反编译的输出文件)
相关文档:https://ibotpeaches.github.io/Apktool/install/
3、dex2jar的使用及JD GUI查看Java代码
dex2jar
可以将apk
反编译成java源码(classes.dex
转化成jar
文件)
解压出来文件说明:
dex-reader/writer:读写Dalvik可执行(.dex)文件。它具有类似于ASM的轻量级API。
d2j-dex2jar:将.dex文件转换为.class文件(压缩为jar)
smali/baksmali:将dex分解为smali文件,并从smali文件中组装dex。与smali / baksmali的实现不同,语法相同,但是我们在desc"Lcom/dex2jar\t\u1234;"
类型中支持转义。
Linux和Mac执行dex2jar:
sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
Windows执行dex2jar:
d2j-dex2jar.bat -f D://apk_to_decompile.apk
输出文件名如下:
apk_to_decompile-dex2jar.jar
使用JD-GUI查看Java代码:
打开之前下载的jd-gui文件夹里的jd-gui.exe,然后用它打开上一步生成的apk_to_decompile-dex2jar.jar文件,则可以查看Java源码,效果如下: