我正在开发安全软件,并希望混淆我的Java代码,因此将无法进行反向工程。什么是最可靠的Java混淆器?
It was once said that if you had an infinate amount of monkeys on typewiters and an infinate amount of time, they would write all of the great works of Shakespeare.
-Dilbert
我正在开发安全软件,并希望混淆我的Java代码,因此将无法进行反向工程。什么是最可靠的Java混淆器?
It was once said that if you had an infinate amount of monkeys on typewiters and an infinate amount of time, they would write all of the great works of Shakespeare.
-Dilbert
Answers:
首先,您确实需要牢记,对某些东西进行逆向工程永远是不可能的。一切都是可入侵的。使用智能IDE的智能开发人员已经可以做得足够多了。
好吧,您可以在这里找到列表。ProGuard非常不错。我曾经使用过它,但是只是“最小化” Java代码。
如果计算机可以运行它,那么有适当动机的人可以对它进行逆向工程。
请查看我的文章“通过混淆器及其他方法保护您的Java代码”,讨论混淆与其他三种使应用程序的反向工程更昂贵的方法,以及指向工具的链接和进一步的阅读资料。
我认为Proguard是最好的。也可以将其与IDE(例如NetBeans)集成。但是,请考虑一下,如果对代码进行混淆处理,可能很难在日志中跟踪问题。
如此处其他地方所述,proguard很好,但可能不知道的是,这里还有一个第三方maven插件http://pyx4me.com/pyx4me-maven-plugins/proguard-maven-plugin/ ...我一起使用它们,它们非常好。
的确,总是可以对某些代码进行反向工程,就像不可能为了保护房子而没有人保护它一样。但是,那并不能阻止我锁门。实际上,我不在Java世界中,我将BitHelmet用于.net。
我曾经在我以前的公司中与Klassmaster合作,并且运作得非常好,并且可以与构建系统很好地集成在一起(Maven支持非常出色)。但是它不是免费的。
我们最好对罐子加密而不是混淆。我们使用Classguard。
我不确定该解决方案是否安全,但是有关ClassGuard解决方案,请阅读以下文章和评论很有趣:http : //www.javaworld.com/community/? q=node/1604# comment -12296