apktool
官网地址 : https://ibotpeaches.github.io/Apktool/
反编译命令 :
java -jar apktool.jar d demo.apk -o demo
apktool d app.apk -r --only-main-classes -o destDir
d 表示反编译
app.apk 是目标apk文件路径
-r 表示不反编译资源文件
–only-main-classes 表示不反编译某些资源文件目录下的dex文件,这些dex文件通常是被加固的dex.
-o 反编译后代码存放目录
java -jar apktool.jar b demo -o demo_repackage.apk
dex2jar
GitHub 地址 : https://github.com/pxb1988/dex2jar
反编译命令 : demo.apk 是指定要反编译的 apk 文件 , -o demo.jar 指定要输出的 jar 文件路径 ;
d2j-dex2jar.bat demo.apk -o demo.jar
enjarify
GitHub 地址 : https://github.com/google/enjarify
enjarify 工具与 dex2jar 功能类似 ;
jd-gui
GitHub 地址 : https://github.com/java-decompiler/jd-gui
将 jar 文件拖到窗口中 , 即可查看反编译出的 jar 文件源码 ;
jadx
GitHub 地址 : https://github.com/skylot/jadx/
具备上面四个工具的所有功能