【发布时间】:2010-12-25 03:26:59
【问题描述】:
众所周知,有很多java反编译工具可以将.class转换为.java文件。
因此,我们需要保护我们的 .java 文件免受反编译器的影响。我知道这是一个很大的话题,也许没有结局。
通常有两种方式:混淆器和自定义类加载器。
有没有成熟的解决方案或开源框架,结合了这两种方式?
另一个方面和exe4j有关,它把jar打包成exe文件,好像可以保护java代码,因为我们看到的是exe文件,而不是jar或class文件。但实际上,当它运行时,它会将所有 jars 文件分解到临时目录中,这意味着很容易获取类文件以供反编译器使用。 那么从 exe4j 方面保护 java 代码有什么注意事项吗?
感谢您的 cmets 和建议。
更新
感谢大家的建议或经验分享。这对我很有帮助。 作为结论,我将放弃任何带有加密功能的混淆器或自定义类加载器。因为终于可以在聪明的黑客面前公开 Java 代码了。
我将在编译期间使用 C 语言中的“#ifdef”等技巧删除一些核心代码。在 Java 中,静态和最终布尔类变量可用于完成相同的工作。 那么编译的类文件将不包含需要保护的java代码。
【问题讨论】:
-
是的,这是重复的:stackoverflow.com/questions/49379/…
-
使用开源框架创建闭源产品。很有趣。
-
@Piligrim:在这种情况下甚至比平时更“封闭”的源代码;-)
标签: java obfuscation decompiling