我正在开发一款安全软件,希望对我的Java代码进行混淆,以使它无法被反向工程。哪种Java混淆器是最可靠的?
我正在开发一款安全软件,希望对我的Java代码进行混淆,以使它无法被反向工程。哪种Java混淆器是最可靠的?
首先,你需要牢记的是,没有什么是绝对不可能被逆向工程化的。一切都可以被黑客攻击。一个聪明的开发者使用聪明的IDE(集成开发环境)已经可以做得足够好了。
嗯,你可以在这里找到一个列表。ProGuard相当不错。我自己也用它来“缩小”Java代码。
只要电脑可以运行它,一个足够有动力的人就可以对其进行逆向工程。
查看我的文章通过混淆和其他方法保护您的Java代码 [已存档],其中讨论了混淆与另外三种使您的应用程序更难逆向工程的方法以及工具和更多阅读材料的链接。
我认为Proguard是最好的选择。它也可以与你的IDE(例如NetBeans)集成。但是需要注意,如果你混淆了代码,可能会在日志中跟踪问题时变得更加困难。
如其他地方所说,ProGuard是很好的,但可能不为人知的是,这里还有一个第三方Maven插件可以与之一起使用,链接如下http://pyx4me.com/pyx4me-maven-plugins/proguard-maven-plugin/......我已经将它们两个一起使用,非常好用。
我们发现加密JAR文件比混淆更有效。我们使用Classguard。
我不能确定这个解决方案是否安全,但是关于ClassGuard解决方案,阅读文章和评论很有趣,链接在:http://www.javaworld.com/community/?q=node/1604#comment-12296