1. jadx
Jadx :查看带有语法高亮的反编译代码、跳转到声明处、查找用法、全文搜索、Smali调试器等功能
Star:37.7k⭐️
项目地址:https://github.com/skylot/jadx
下载:https://github.com/skylot/jadx/releases/tag/v1.4.7
操作页面:
2. bytecode-viewer
bytecode-viewer 是一款功能强大的Java反编译工具,支持简便的拖放式操作,适用于Java Jars和Android APKs,提供广泛的文件格式支持,内置6个Java反编译器和3个字节码反汇编器,包括Krakatau和Smali/BakSmali汇编器,支持APK/DEX文件,具备内置Java编译器、高级静态搜索功能、可定制的用户界面、插件和脚本引擎设计,以及恶意代码扫描API等特色功能,同时支持30多种语言翻译,提供导出为Runnable Jar、Zip、APK等多种功能
Star:14.1k⭐️
项目地址:https://github.com/Konloch/bytecode-viewer
下载:https://github.com/Konloch/bytecode-viewer/releases/tag/v2.12
操作页面:
3. jd-gui
JD-GUI 是一个独立的图形实用工具,用于显示“.class”文件的Java源代码,可以使用JD-GUI浏览重构后的源代码,以便立即访问方法和字段。
Star:13.2k⭐️
项目地址:https://github.com/java-decompiler/jd-gui
下载:https://github.com/java-decompiler/jd-gui/releases/tag/v1.6.6
操作页面:
4. Recaf
Recaf 是一款现代Java字节码编辑器,简化了Java程序的复杂性,包括常量池、栈帧、宽指令等
Star:5.4k⭐️
项目地址:https://github.com/Col-E/Recaf
下载:https://github.com/Col-E/Recaf/releases/tag/2.21.13
操作页面:
5. Luyten
Luyten 是一个基于Procyon的开源Java反编译GUI
Star:4.9k⭐️
项目地址:https://github.com/deathmarine/Luyten
下载:https://github.com/deathmarine/Luyten/releases/tag/v0.5.4_Rebuilt_with_Latest_depenencies
6. GDA-android-reversing-Tool
GDA-android-reversing-Tool 是最快且最强大的Android反编译工具(原生工具,无需Java虚拟机),支持APK、DEX、ODEX、OAT、JAR、AAR和CLASS文件。它具备恶意行为检测、隐私泄漏检测、漏洞检测、路径解决、打包器识别、变量跟踪、反混淆、Python和Java脚本、设备内存扩展等功能。
Star:3.7k⭐️
项目地址:https://github.com/charles2gan/GDA-android-reversing-Tool
下载:https://github.com/charles2gan/GDA-android-reversing-Tool/releases/tag/GDA4.10
备注:仅支持windows系统
7. fernflower
Fernflower 是第一个真正可行的Java解析反编译器,可能也是针对高级编程语言的解析反编译器。
Star:3.1k⭐️
项目地址:https://github.com/fesh0r/fernflower
下载:无
命令:
java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination>
8. Krakatau
Krakatau 是一款强大的Java字节码汇编器和反汇编器,支持将二进制class文件转换为易读的文本格式,处理混淆代码,同时提供反编译器用于将Java二进制文件转换为可读源代码,专为处理混淆代码设计。
Star:1.9k⭐️
项目地址:https://github.com/Storyyeller/Krakatau
下载:无
使用方式:
krak2 dis --out temp RecordTest.class
krak2 dis --out disassembled.zip --roundtrip r0lling-challenge.jar
9. cfr
CFR 是一款反编译工具,支持解析现代Java特性,包括Java 9、12和14,但完全使用Java 6编写,因此可在任何地方运行。它甚至能够相对成功地将来自其他JVM语言的类文件转换回Java!使用时,只需运行特定版本的JAR文件,附上要反编译的类名(作为类文件路径或类路径上的完全限定类名),也可以对整个JAR文件进行反编译,只需提供JAR路径,并添加–outputdir /tmp/putithere以生成文件。
Star:1.8k⭐️
项目地址:https://github.com/leibnitz27/cfr
下载:https://github.com/leibnitz27/cfr/releases/tag/0.152
10. vineflower
Vineflower 是一款现代通用的JVM语言反编译器,注重提供最佳质量、速度和可用性。支持Java 20+,包括records、sealed classes、switch expressions等,具备清晰的代码生成和输出,自动输出格式化,支持多线程反编译。可在Wiki上查看Vineflower输出与其他反编译器的比较示例。
Star:890⭐️
项目地址:https://github.com/Vineflower/vineflower
下载:无
dependencies {
implementation 'org.vineflower:vineflower:<version>'
}