APK decompilers

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

有关每个工具的更多详细信息,请查看原始帖子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 "输出目录"

最后更新于