如何保护Java应用程序免受逆向工程或代码窃取?

时间:2011-08-12 19:54:48

标签: java obfuscation reverse-engineering source-code-protection

我想向公众透露我的桌面java应用程序,但我不确定如何保护它免受逆向工程或源代码窃取?

是否可以将应用程序转换为exe文件?如果是的话,那还不足以保护它吗?

3 个答案:

答案 0 :(得分:5)

如果真的值得某人花时间从二进制文件中反向设计源代码,他们会。你可能会稍微努力一点,但绝不可能。

答案 1 :(得分:5)

您可以使用Java混淆器,例如ProGuard

  

ProGuard是一个免费的Java类文件收缩器,优化器,混淆器和预处理器。它检测并删除未使用的类,字段,方法和属性。它优化字节码并删除未使用的指令。 使用简短无意义的名称重命名剩余的类,字段和方法。最后,它预先验证了Java 6或Java Micro Edition的已处理代码。

答案 2 :(得分:3)

Java可执行文件和本机可执行文件都只是一堆机器代码(带有可选的注释和内容)。因此,反向工程的容易程度基本没有区别。

如果您正在使用javac进行编译,则可以使用-g:none标志来消除所有调试信息被编译为可执行文件。