APK decompilers
有关每个工具的更多详细信息,请查看原始帖子https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr
作为开创性的GUI Java反编译器,JD-Gui允许您查看APK文件中的Java代码。使用简单;获取APK后,只需用JD-Gui打开它以检查代码。
Jadx提供了一个用户友好的界面,用于从Android应用程序中反编译Java代码。它因跨不同平台的易用性而备受推荐。
要启动GUI,请转到bin目录并执行:
jadx-gui
对于命令行用法,使用以下命令反编译APK:
jadx app.apk
要指定输出目录或调整反编译选项:
jadx app.apk -d <输出目录路径> --no-res --no-src --no-imports
GDA是一个仅适用于Windows的工具,为反向工程Android应用程序提供了丰富的功能。在Windows系统上安装并运行GDA,然后加载APK文件进行分析。
使用Bytecode-Viewer,您可以使用多个反编译器分析APK文件。下载后,运行Bytecode-Viewer,加载您的APK,并选择您希望用于同时分析的反编译器。
Enjarify将Dalvik字节码转换为Java字节码,使Java分析工具能够更有效地分析Android应用程序。
要使用Enjarify,请运行:
enjarify app.apk
这将生成所提供APK的Java字节码等效物。
CFR能够反编译现代Java特性。使用方法如下:
对于标准反编译:
java -jar ./cfr.jar "app.jar" --outputdir "输出目录"
对于大型JAR文件,请调整JVM内存分配:
java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "输出目录"
Fernflower是一款分析反编译器,需要从源代码构建。构建后:
反编译JAR文件:
java -jar ./fernflower.jar "app.jar" "输出目录"
然后,使用unzip
从生成的JAR文件中提取.java
文件。
Krakatau提供了对反编译的详细控制,特别适用于处理外部库。
通过指定标准库路径和要反编译的JAR文件使用Krakatau:
./Krakatau/decompile.py -out "输出目录" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
对于使用procyon进行简单反编译:
将JAR文件反编译到指定目录:
procyon -jar "app.jar" -o "输出目录"
最后更新于