反编译器就是能将可执行程序,转换为高级语言的源代码的工具。从而让软件开发人员能更好的理解可执行程序的底层运作方式。

什么是反编译器?

    反编译器就是能将可执行程序,转换为高级语言的源代码的工具。从而让软件开发人员能更好的理解可执行程序的底层运作方式。对于Java反编译器,就是能将.class文件转为可读的Java源码的工具。

    尤其是当你无法追踪程序源码的时候,反编译器就能通过已创建好的程序,帮你找回源代码。本文将介绍5个非常好的Java反编译器,供你参考。

1. JD Project

    JD反编译器项目,该项目的目标是成为一个开发工具,以便对Java 5及更高版本的Java字节码进行反编译和分析。该反编译器可以在三个主流操作系统:Windows,Mac和Linux中使用。

    它在开发人员中很流行的一个原因是,它可以很容易的集成到常用的IDE(集成开发环境)中,例如:集成到IntelliJ和Eclipse中。

    JD项目使用JD-GUI图形界面来显示.class文件的Java源代码。

2. Cavaj

    Cavaj是一个免费的Java反编译器,它不是由Java编写的,所以可以不依赖Java运行时而独立运行。

    它可以处理Java的class文件而不管这些字节码文件是以什么形式发布的,例如,是基于web的Java applets形式,还是移动设备的App形式,或者是独立的Java应用程序之类的。它不能处理压缩过的Jar包,不过你可以使用很多别的工具将Jar包解开后再进行反编译。

    不过Cavaj是专门为Windows系统开发的。所以,如果你使用的是Mac或Linux系统,那么,它可能对你的作用就不会特别大。

3. Procyon

    Procyon是最流行的开源的Java反编译器之一,它的一个独特的特点在于可以处理Java 8,它可以轻松的处理从Java 5到最新版Java中引入的新特性。因此,它可以作为其他反编译器失败时的替代方案。

    你可以使用Procyon处理Java 8中的本地类,Switch语句,Enum声明,和Lambda匿名函数。

4. AndroChef

    AndroChef是另一个只能用于Windows系统的Java反编译器。你可以使用它反编译任何形式的Java字节码,除了可以反编译.class文件外,AndroChef还可以处理applets, JAR, DEX和APK文件。

    它有一个用户友好的GUI图形界面,使它成为一个易于使用的Java反编译器。

5. CFR反编译器

    CFR是另一个能够处理Java 8,Java 9中新特性(例如:匿名函数等)的反编译器。这样你就不用担心程序是用什么版本的Java写的了。

    它还提供了一个命令行工具,让反编译过程变成更快和更有效,唯一的缺点是这个反编译器不是一个开源程序。

    如果你在查找一个好用的Java反编译器,那么,你可以尝试下上面提到过的这些反编译器。

 

上下篇

下一篇: 初学者该如何学习Java编程语言

上一篇: 用于图像识别的顶级编程语言

相关文章

Lua:一种快速,可扩展的功能强大的编程语言

为什么玩视频游戏对程序员有好处?

适合区块链开发的5种编程语言

用于数据科学的流行的Python库

程序员应该学习C#编程语言的6个理由

10个简单的适合初学者的编程语言