Java混淆器

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

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

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

什么是好的java混淆器? 它不需要是免费的,它只需要很好地工作并且易于使用。

我对我的所有发布版本都大量使用ProGuard ,我发现它非常出色。 我不能推荐它!

曾经遇到过多次由于优化导致的模糊错误,我现在全面禁用优化 – 从那时起就没有ProGuard引起的问题。 虽然,公平地说,这些都是相当多的版本 – YMMV。

我以前使用GUI来启动配置,然后我自己编辑文本配置,这真的很简单。 这些天我手工配置。

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

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

本文中给出了一系列免费和商业工具的链接

“保护您的Java代码 – 通过混淆器和超越”

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

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

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

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

我在商业应用程序中使用了Zelix Klassmaster多年,并发现它非常出色。 我在混淆的代码中投入了相当多的资源,并且无法“破坏”它。 它价格昂贵但很好。

当我的版本变得足够大以至于升级成本很高时,我才停止使用它。 我的需求发生了变化,我不再需要对这些课程进行模糊处理。 但是,如果需要再次出现,我会支付费用并立即使用它。

干杯,

-Richard

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

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