正如我们所知,有很多java反编译器工具可以将.class转换为.java文件。如何保护Java代码免受反编译?
因此,我们需要保护我们的.java文件免受反编译器的影响。我知道这是一个很大的话题,也许没有结局。
通常,有两种方式:混淆器和自定义类加载器。
是否有任何成熟的解决方案或开源框架,它们结合了这两种方式?
另一个方面与exe4j有关,它将jars包装到exe文件中,似乎可以保护java代码,因为我们可以看到的是exe文件而不是jar文件或类文件。但实际上,当它运行时,它会将所有jar文件分解为临时目录,这意味着很容易获取反编译器的类文件。 因此,从exe4j方面保护java代码的任何考虑?
感谢您的意见和建议。
正在更新
感谢大家的建议或经验分享。这对我很有帮助。为了得出结论,我将放弃任何混淆器或定制类加载器加密的东西。因为最终Java代码可以在聪明的黑客之前被披露。
我将在编译时使用C#语言中的“#ifdef”等技巧删除一些核心代码。在Java中,可以使用静态和最终的布尔类变量来完成相同的工作。 然后编译的类文件将不包含需要保护的java代码。
重复的问题? – 2009-12-10 07:11:03
是的,这是一个重复的:http://stackoverflow.com/questions/49379/how-to-lock-compiled-java-classes-to-prevent-decompilation – David 2009-12-10 07:13:20
使用开源框架来创建闭源产品。有趣。 – 2009-12-10 07:25:34