16

我正在寻找一个好的 Java 混淆器。

我对以下 Java 混淆器进行了初步研究:proguard、yguard、retroguard、dasho、allatori、jshrink、smokescreen、jobfuscate、marvin、jbco、jode、javaguard、jarg、joga、cafebabe、donquixote、mwobfu、bbmug、zelix klassmaster 、sandmark、jcloak、thicket、blufuscator 和 java 代码保护器。

我尝试了 proguard,它有一个非常好的 GUI,看起来非常稳定,并且似乎是最受欢迎的,但它似乎不像引用的 jar 文件(不在我试图混淆的代码中)的一些枚举,这很奇怪. Yguard 似乎需要与 ant 进行一些交互,我对此不太了解。

什么是好的 java 混淆器?它不需要是免费的,它只需要运行良好并且易于使用。

4

6 回答 6

20

我在所有发布版本中大量使用ProGuard,我发现它非常棒。我不能推荐它!

曾多次遇到由它的优化引起的模糊错误,现在我全面禁用优化 - 从那以后就没有出现过由 ProGuard 引起的问题。不过,公平地说,这些都是以前的版本——YMMV。

我以前只使用 GUI来启动一个配置,然后我求助于自己编辑文本配置,这真的很简单。这些天我手动进行配置。

我有相当复杂的项目,所有这些项目都涉及动态加载和反射。我还大量使用反射来实现回调。ProGuard 很好地应对了这些问题。

编辑:我们还将 DashO Pro 用于我们的一种产品——我研究了它来包装我负责的产品,并得出结论认为它的配置过于复杂和复杂;也将它集成到构建脚本中似乎有点痛苦。但同样,公平地说,这是大约 2001 年......所以在当前版本中可能会更好。

于 2008-11-22T00:13:19.000 回答
11

这篇文章中提供了大量免费和商业工具的链接

“保护您的 Java 代码 - 通过混淆器及其他方式”

作者还讨论了字节码混淆的优缺点

于 2009-11-12T22:56:46.050 回答
3

ProGuard 有什么问题?(这个问题这个问题都推荐)。

有一段关于枚举器的故障排除,但它们似乎被考虑得很好

然而,混淆破坏了一些反射尝试,即使现代混淆器可以检测并在某种程度上调整它们混淆的代码中的反射用法。

于 2008-11-21T23:28:50.243 回答
2

我在商业应用程序中使用了 Zelix Klassmaster 几年,发现它非常出色。我在混淆代码中投入了很多资源,但无法“破解”它。它很贵,但很好。

当我的版本足够老以至于升级成本很高时,我才停止使用它。我的需求发生了变化,我真的不需要再混淆这些类了。但是,如果再次出现需要,我会付钱并立即使用它。

干杯,

-理查德

于 2008-11-22T02:13:33.250 回答
1

我们使用 Zelix Klassmaster 已有几年了,我可以推荐它。

于 2008-11-27T20:33:37.643 回答
1

我使用并建议Zelix - 100% - 非常坚固和强大的保护

于 2012-08-06T23:55:12.963 回答