Java Decompiler

你能为Eclipse推荐一个Java反编译器吗? 我的其他问题是使用来自其他Java程序的反编译代码有什么限制? 非法还是什么? 我不太了解许可证。 谢谢阅读。

我建议在google上弹出一个,这是JD Java反编译器。 它的效果非常好。

至于限制,您必须阅读特定软件的许可证,可能会写出禁止任何反编译方式。

我喜欢JadClipse – 但它显示了它的年龄。 你会需要:

  • 一个jad二进制文件
  • 已安装jadClipse
  • 将Eclipse首选项指向上面的jad二进制文件
  • 告诉它生成行号并对齐调试

有几个缺点:

  • 代码是按顺序生成的,如果重新排列了字节代码,那么在字节代码中出现了一些问题,但是在原始代码的早期,jad没有倒回来将反汇编的代码放到正确的行。
  • jad不太了解Java 5 + 6字节码。

我使用过这个eclipse插件: JadClipse

而这个java反编译器: JAD

我已经尝试了几个反编译器,其中大部分未能为我试图反编译的applet生成正确的源代码(这是http://mrl.nyu.edu/~perlin/experiments/emotive-actors/ ,以防任何人想重现)。

完全无瑕疵的工作是Cavaj 1.11 ,它生成的代码不包含语法错误,从源代码编译的applet与原始代码完全相同。 我在UI方面缺少的是:Ctrl-A / Ctrl-C键盘快捷键不起作用,并且没有可用的批量转换。

我尝试过的其他反编译器是:

  • JD Java反编译器 (免费软件)看起来很不错,但它在变量声明方面犯了很多错误(一些声明丢失了,其他的声明很糟糕)
  • Neshkov DJ Java Decompiler (共享软件)也看起来不错,它生成的代码包含的语法错误少于JD,但代码无效。 鉴于产品不是免费的,人们可以期待更多。

我无法回答你的第一个问题:它可能有偏见,也许……

关于你的第二个问题,反编译是法律的。 这一点对我来说非常重要。 看看这个有趣的页面: http : //www.program-transformation.org/Transform/LegalityOfDecompilation

JD是我所知道的最好的Java Decompiler。

我发现JD非常好。 虽然,我遇到了一两个小错误导致运行时出现意外行为。

例如,我有一个例子,其中原始case语句在最后一个节点上没有’break’(因为当然这是不必要的),但是因为JD最终重新排序节点,这意味着’默认’的情况是意外地叫了一声。 我也遇到了字符集的问题,我需要在事情结束时进行一些额外的toString()调用,以便按预期注销。 除此之外它太棒了!

我用另一个反编译器DJ来帮我弄清楚JD反编译代码的错误。 但是还有其他一些DJ无法处理的事情,所以我猜两个反编译器的混合物对我有效:)

希望Dupuy先生会读到这个!