Java 混淆 - ProGuard/yGuard/其他? [关闭]

Posted

技术标签:

【中文标题】Java 混淆 - ProGuard/yGuard/其他? [关闭]【英文标题】:Java obfuscation - ProGuard/yGuard/other? [closed] 【发布时间】:2010-09-14 02:52:18 【问题描述】:

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

Best Java Obfuscation Application For Size Reduction Creating non-reverse-engineerable Java programs

但是,一个人最终推荐了 yGuard 和另一个 ProGuard,但两者都没有提及。我想知道我们是否可以对每一个进行比较,并从围栏两边听取人们的经验。在 ProGuard 网站上查看这个comparison chart,它明显倾向于 ProGuard。但是每个人的真实世界经验如何——哪一个产生的输出更小?哪个更难反编译?各自支持哪些 Java 版本?

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

【问题讨论】:

在 JDK 1.0 中编写类的人在混淆方面做得很好,也许你可以雇用他们。 那些会记录 J2ME API 吗? 我不知道哪个更好。我发布了其中一个问题(说 Proguard 更好的问题),希望让这种类型的对话继续下去,但它从来没有去任何地方。 【参考方案1】:

我的项目的结果。

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

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

【讨论】:

【参考方案2】:

Proguard 是更好的产品;特别是如果您花时间检查 J2ME 的设置。

专门针对 J2ME 有一个更好的(商业)产品,称为 mBooster

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

【讨论】:

就像一个注释 - proguard 与 zip 压缩无关:P【参考方案3】:

我的意见是 - ProGuard 更好。输出小了一点。优化更好更快。

在这两种情况下,反编译都很简单。好吧,我的意思是,如果你非常了解 Java 并且真正了解你正在反编译的业务逻辑,那么从混淆类中将其返回到源代码是没有问题的。

所以,我认为 ProGuard 更好。

【讨论】:

对于 android 开发,我会说 ProGuard。

以上是关于Java 混淆 - ProGuard/yGuard/其他? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android 代码混淆

java proguard混淆示例和结果

java proguard混淆示例和结果

maven混淆Java代码

Android 编程下的代码混淆

Java代码混淆器ProGuard