第一款利器ApkTool
官方地址:https://github.com/iBotPeaches/Apktool/tree/gh-pages
使用示例:java -jar apktool_2.2.2.jar d E:\GooglePackageInstaller1.apk
将当前的APK解压为,资源将会解压为资源,而Dex将会解压为smali文件
第二款利器dex2jar
官方地址:https://github.com/pxb1988/dex2jar
使用示例:d2j-dex2jar xxx
不过我们在有了第三款利器后不怎么使用它了故不详述
第三款利器jadx
官方地址:https://github.com/skylot/jadx
使用示例:GUI界面,解压后进入到bin目录,运行:jadx-gui.bat批处理即可以。目前支持apk,dex,jar,zip,aar等格式,非常方便
但是的但是,第二款神器和第三款神器都不支持java 8了,也就是N SDK编译出来的APK或者DEX反编译不了了,目前看起来官方没有更新所以得想寻找另一个神器。
第四款神器DexPatcher
官方地址:https://github.com/DexPatcher/dexpatcher-tool
下载地址:https://github.com/DexPatcher/DexPatcher-tool/releases
使用方式举例,当发现使用jadx打不开某个APK或者DEX文件时,可以尝试将APK的DEX文件提出来,提取方式不详述,可自行百度。假设我们将DEX提取出来放在E盘,我们进入到DexPather Jar目录并执行如下cmd:
java -jar dexpatcher-1.2.0.jar -a 23 E:\classes.dex -o E:\classes\
完成后我们可以看到在E盘的classes里生成了一个新的classes.dex文件,然后再用jadx打开应该就Ok了。