Java 反编译器

Rashmi Patidar 2021年6月30日
Java 反编译器

decompiler 是一个实用程序,可帮助分析和反编译 Java 字节代码并从中生成源代码。反编译是编译过程的完全相反的过程。这个过程在没有源代码的情况下是有益的,我们可以在反编译字节码后调试使用源代码并分析其行为。

由于开发是使用集成开发环境(IDE)完成的,因此在 IDE 中拥有一个反编译器是非常方便的。在免费提供的 IDE 市场中搜索字符串反编译器,例如 Eclipse 或 Intellij。

对于 Intellij IDE,我们可以从市场下载插件。一旦插件到位,我们就可以在 maven 插件下方的左侧边栏中找到反编译器。下面是附加的截图,以便更好地理解。

Intellij 中的反编译器插件

反编译代码会自动转换为源代码,我们可以在目标文件夹中找到它。下面附上截图以供理解。

目标文件夹中反编译后的源代码

将字节码转换为源代码的其他可用工具如下。

Java Decompiler 是一个带有实际应用程序的在线 Web 服务。我们可以使用该实用程序反编译任何 Java 5 和更高版本的代码。该服务提供了各种选项,我们可以在这些选项下从列表中选择我们选择的反编译器。在此之下,我们有 JD-GUI,它是一个图形实用程序,有助于转换 .class 文件以从中获取 Java 源代码。JD-Eclipse 是一个 Eclipse IDE 插件,它允许在 IDE 本身中反编译一个类文件。JD-Core 是另一个开源实用程序,可以从字节码中重新创建源代码。

另一个实用程序是 Procyon,主要用于代码生成和分析。它是一个开源实用程序,由 Apache 许可证 2 提供。它由核心框架、表达式框架、反射框架、编译器工具集和反编译器等库组成。它具有促进从字节码生成代码的过程的效用。

有关更多详细信息,请访问 GitHub 链接 -https://github.com/mstrobel/procyon

Krakatau 是另一种用于汇编和反汇编 Java 字节码的开源工具。该工具允许用户将二进制代码转换为文本格式。它甚至允许用户再次将源代码重新转换为字节码。该实用程序纯粹是一个 Python 脚本,它会在我们执行命令时运行。

更多细节通过 GitHub 链接 - https://github.com/Storyyeller/Krakatau

CFR 是另一个 Java 反编译器,它允许反编译 Java 14 版本的字节码。反编译器代码纯粹是用 Java 6 编写的,易于执行。我们可以通过一个运行 jar 的命令来运行它,并在此处接受一个参数,即要反编译的类名。

更多细节在链接上 - https://github.com/leibnitz27/cfr

Fernflower 是另一个仍在开发中的可用工具。该实用程序由 Apache 许可证 2 提供。执行命令就像运行带有参数的 jar 一样简单。

欲了解更多详情,请访问 - https://github.com/fesh0r/fernflower

DJ Java Decompiler 是与 windows 及其后续版本兼容的实用工具之一。该实用程序功能强大,足以从给定的字节码正确反编译 Java 小程序代码。它是一个独立的 Windows 应用程序,具有明确定义的图形用户界面。

欲了解更多详情,请访问 - http://www.neshkov.com/

作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn