我在找一个好的Java混淆器。
我已经对以下java混淆程序做了初步的研究: proguard、yguard、javaguard、dasho、allatori、jarg、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混淆器?它不需要是免费的,它只需要良好的工作和易于使用。
发布于 2008-11-22 00:13:19
我在所有的发布版本中都大量使用ProGuard,我发现它非常优秀。我怎么推荐都不为过!
我曾在几个场合遇到过由它的优化引起的模糊的bug,现在我全面禁用了优化--从那以后就再也没有出现过由ProGuard引起的问题。不过,公平地说,这些都是相当多的版本- YMMV。
我过去只使用GUI来启动配置,然后我会自己编辑文本配置,这真的非常简单。这些天我都是手工进行配置的。
我有相当复杂的项目,所有这些项目都涉及到动态加载和反射。我还大量使用反射来实现回调。ProGuard已经很好地解决了这些问题。
编辑:我们还为我们的一个产品使用了DashO专业版--我研究了一下它来打包我负责的产品,得出的结论是它的配置太复杂和复杂了;而且将它集成到构建脚本中似乎有点痛苦。但是,公平地说,这是在2001年左右...因此,在当前版本中可能会更好。
发布于 2009-11-13 06:56:46
这篇文章提供了一系列免费和商业工具的链接。
"Protect Your Java Code - Through Obfuscators And Beyond"
作者还讨论了字节码混淆的优缺点。
发布于 2008-11-21 23:28:50
ProGuard有什么问题?(这是this question和this one都推荐的)。
troubleshooting中有一部分是关于枚举器的,但它们似乎都被考虑到了just fine。
然而,混淆打破了一些反射的尝试,即使现代的混淆程序可以检测并在某种程度上调整它们正在混淆的代码中反射的使用。
https://stackoverflow.com/questions/310533
复制相似问题