Java混淆 – ProGuard / yGuard / other?

这与最近的这些问题类似:

用于减小大小的最佳Java混淆应用程序 创建非反向可执行的Java程序

但是,最终会推荐yGuard和另一个ProGuard,但两者都没有提及。 我想知道我们是否可以对每一个进行比较,并听取围墙双方的人们经历。 在ProGuard网站上查看这个比较图表 ,它明显倾向于ProGuard。 但是每个人的实际经验呢?哪一个会产生较小的输出? 哪一个更难反编译? 每个支持哪些Java版本?

就个人而言,我对J2ME的观点特别感兴趣,但请不要将讨论局限于此。

Proguard是一种更好的产品; 特别是如果你花时间去完成J2ME的设置。

特别是对于J2ME,有一种更好的(商业)产品叫做mBooster

在通过Proguard 之后 ,我的应用程序的大小已经提高了大约25%。 这主要是为了对Jar文件中更好的Zip压缩以及对类合并和预validation的全面支持。

我的项目的结果。

  • 混淆 – 都很好。
  • 优化 – ProGuard生成的代码速度提高了20%(针对测量的应用程序瓶颈)。
  • 紧凑性 – ProGuard小约5%。
  • 配置/ Ant – YGuard更容易配置。

所以,我建议ProGuard – 但配置和ant集成肯定可以改进。

我的观点是 – ProGuard更好。 输出稍微小一些。 优化更好,更快。

在两种情况下,反编译都很简单。 嗯,我的意思是,如果你很了解Java并且真正了解你正在反编译的业务逻辑,那么将它从模糊类中恢复到源是没有问题的。

所以,我的观点是ProGuard更好。