反编译的java文件如何存储_如何“反编译”Java类文件?

2016年2月更新:

最stream行的Java反编译器,但主要是这个年龄段。 用C ++编写,速度非常快。

过时,不受支持,不能正确反编译Java 5及更高版本

所以你的里程可能会有所不同,最近jdk(7,8)。

同一网站列出其他工具。

正如萨尔瓦多·瓦伦西亚 ( Salvador Valencia)在评论 (2017年9月)中所指出的那样,javadecompiler提供了一个SaaS,您可以将.classfile upload到云中,并返回反编译的代码。

原始答案:2008年10月

定义了J2SE 5.0(Java SE 5)的主要function的JSR 176的最终版已于2004年9月30日发布。

由Pavel Kouznetsov先生着名的Java反编译器JAD支持的最新Java版本是JDK 1.3 。

大多数可以从互联网上下载的Java反编译器,比如“DJ Java Decompiler”或“Cavaj Java Decompiler”,都是由JAD支持的:它们不能显示Java 5源代码。

Java反编译器 (另一个快速Java反编译器)有:

显式支持反编译和分析Java 5+ “.class”文件。

一个不错的GUI:

jH9Pd.png

它适用于从JDK 1.1.8到JDK 1.7.0的编译器,以及其他( Jikes , JRockit等)。

它具有实际上function完整的在线实时演示版本 ! 你可以在页面上放一个jar文件,看看反编译的源代码,而不需要安装任何东西。

有几个反编译器在那里…快速search产量:

Procyon :开源(Apache 2)并积极开发

Krakatau :开源(GPLv3)并积极开发

CFR :开源(MIT)积极开发

JAD

DJ Java Decompiler

摩卡

还有很多。

这些产生Java代码。 Java带有一些让你看到JVM字节码( javap )的东西。

要查看Java源代码,请查看一些反编译器。 去寻找jad 。

如果你想看字节码,只需使用JDK自带的javap 。

我尝试了几个,而浣熊似乎对我最好。 它正处于积极的发展阶段,并且支持最新版本的Java的许多function。

这些是我尝试的其他人:

CFR

有前途的,但往往不能反编译的方法。 我会继续关注这个。 还积极开发支持最新的Javafunction。

喀拉喀托

采取不同的方法,它会尝试输出等效的Java代码,而不是尝试重构原始源代码,这有可能使其更好地处理混淆代码。 从我的testing结果来看,它大致与普罗西恩相差无几,但还是有不同的东西。 我不得不使用-skip命令行标志,以防止错误。 积极开发,有趣的是它是用Python编写的。

JD-GUI

工作了,但是Procyon的产量要好得多。 这里是比较Procyon输出到原始和JD-GUI的页面 。 JD-GUI也可以作为一个Eclipse插件 ,根本不适合我。 似乎不是开源的,开发似乎是零星的。

JAD

工作过,但只支持Java 1.4及以下版本。 也可以作为Eclipse插件使用 。 不再发展中。

我使用JAD Decompiler 。

有一个Eclipse插件, jadeclipse 。 这是相当不错的。

烟灰是较新的Java代码的一个选项。 至less它有最近维护的好处…

此外, Java反编译器是一个反编译器,具有独立的GUI和Eclipse集成。

最后, Jdec没有被提及,虽然它不像其他选项那样精致。

Procyon包含一个反编译器。 这是FOSS。

JD-GUI真的很好。 您可以打开一个JAR文件并浏览代码,就好像您在使用IDE一样。 好东西。

有几个程序可以使用。 您将得到实际的Java代码,但是有时代码将被混淆,因此方法以一个字母或数字或随机组合的字母和数字命名。

DJ Decompiler Mocha

大多数Java反编译器都基于JAD 。 这是一个很好的工具,但不幸的是,一段时间没有更新,不能很好地处理Java 1.5+类。 我还没有看到任何能正确处理1.5+课程的工具。

以下是截至2015年2月的反编译器列表:

CFR ,免费,不提供源代码, http://www.benf.org/other/cfr/ JD,仅供非商业用途使用, http://jd.benow.ca/

JAD – 这里只是出于历史原因。 免费,没有源代码可用, http: //varaneckas.com/jad/过时,不受支持,不能正确反编译Java 5及更高版本。

你可以在线testing上面提到的反编译器,不需要安装,做出你自己的教育select。

云中的Java反编译器: http : //www.javadecompilers.com/

看看cavaj 。

到目前为止所列出的所有JAD链接似乎都被破坏了,所以我find了这个网站。 很好(至less对于Linux来说)! 在Ubuntu 11.10上,我不得不下载任何原因的静态文件。

JAD是一个工作和简单。

另外,如果你只是想看到的方法,使用javap。

如果你想看看Java编译器如何做某些事情,你不想反编译,你想反汇编。 反编译涉及将字节码转换为Java源代码,这意味着很多低级信息都会丢失,如果您想了解编译器优化,那么这可能就是您感兴趣的信息。

无论如何,我碰巧写了一个开源的Java反汇编程序 。 与Javap不同的是,即使在高度病态的类上也是如此,所以你可以看到什么模糊处理工具正在为你的类做些什么。 它也可以反编译,但我不会推荐它。

JAD不适合我(Ubuntu 11.10的问题),所以我已经向前移动,并在JODO上采取行动 。 至less它有开放的Java源代码,并能够正确地反编译我的.class 。

我build议首先检查“分支/通用”分支。 树干不稳定。

在IntelliJ IDEA平台上,您可以使用Java Decompiler IntelliJ Plugin 。 它允许你在debugging过程中显示所有的Java源代码,即使你没有全部。 它基于着名的工具JD-GUI 。

gCLny.png

借助AndroChef Java Decompiler,您可以反编译apk,dex,jar和java类文件。 这很简单,容易。 AndroChef JD基于FernFlower 。 你可以评估它在10个免费的用途。

AndroChef支持Java语言function,如generics,枚举和注释。 根据一些研究,AndroChef Java Decompiler能够反编译传统Java编译器生成的Java应用程序的98.04% – 具有非常高的恢复率。 这是一个简单但function强大的工具,它允许您将Java和Dalvik字节码(DEX,APK)反编译为可读的Java源代码。

对于OSX,我推荐:jarzilla或JD-GUI

他们都允许你查看jar子,战争等。 文件内容并反编译其中的任何类文件。

Jarzilla: https : //code.google.com/p/jarzilla/

JD-GUI: http : //jd.benow.ca/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值