hacktricks/mobile-pentesting/android-app-pentesting/apk-decompilers.md

4 KiB
Raw Blame History

APK反编译器

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

有关每个工具的更多详细信息,请查看原始帖子https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr

JD-Gui

作为开创性的GUI Java反编译器JD-Gui允许您查看APK文件中的Java代码。使用简单获取APK后只需用JD-Gui打开它以检查代码。

Jadx

Jadx提供了一个用户友好的界面用于从Android应用程序中反编译Java代码。它因跨不同平台的易用性而备受推荐。

  • 要启动GUI请转到bin目录并执行jadx-gui
  • 对于命令行用法使用以下命令反编译APKjadx app.apk
  • 要指定输出目录或调整反编译选项:jadx app.apk -d <输出目录路径> --no-res --no-src --no-imports

GDA-android-reversing-Tool

GDA是一个仅适用于Windows的工具为反向工程Android应用程序提供了丰富的功能。在Windows系统上安装并运行GDA然后加载APK文件进行分析。

Bytecode-Viewer

使用Bytecode-Viewer您可以使用多个反编译器分析APK文件。下载后运行Bytecode-Viewer加载您的APK并选择您希望用于同时分析的反编译器。

Enjarify

Enjarify将Dalvik字节码转换为Java字节码使Java分析工具能够更有效地分析Android应用程序。

  • 要使用Enjarify请运行enjarify app.apk 这将生成所提供APK的Java字节码等效物。

CFR

CFR能够反编译现代Java特性。使用方法如下

  • 对于标准反编译:java -jar ./cfr.jar "app.jar" --outputdir "输出目录"
  • 对于大型JAR文件请调整JVM内存分配java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "输出目录"

Fernflower

Fernflower是一款分析反编译器,需要从源代码构建。构建后:

  • 反编译JAR文件java -jar ./fernflower.jar "app.jar" "输出目录" 然后,使用unzip从生成的JAR文件中提取.java文件。

Krakatau

Krakatau提供了对反编译的详细控制,特别适用于处理外部库。

  • 通过指定标准库路径和要反编译的JAR文件使用Krakatau./Krakatau/decompile.py -out "输出目录" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

procyon

对于使用procyon进行简单反编译:

  • 将JAR文件反编译到指定目录procyon -jar "app.jar" -o "输出目录"