我担心 Java 可执行文件的安全性。它们几乎没有提供反编译保护。使用 Java Decompiler 等工具,即使是小孩也可以反编译类文件以获得原始代码。
除了代码混淆,还可以做些什么来保护类文件?加密类加载器仍然是一个神话吗?
在以前的公司我们有这样的问题,主要是管理偏执所致。
首先,你要明白绝对安全只是一个神话:只要你的程序运行在不受信任的硬件上,它就可以被反编译,不管你使用什么语言。您唯一可以改变的是攻击者了解您的软件/算法/数据的成本。
关于混淆:它可以被认为是第一级保护,因为它使 Java 代码完全不可读。像 ProGuard 这样的好混淆器在变量/方法名称中使用禁止字符,防止反编译代码的执行。现在,人们可以认为这是一种足够好的安全措施,因为反编译代码不像运行 Jad 或其他反编译器并拥有完美运行的 Java 代码那么简单。但是,可以理解此类代码中公开的大多数算法(因为 readable 代码与 compilable 代码非常不同)。
额外的安全措施包括:
major不便,这使得它可以借用那里。
native
中编写所有代码。无论如何都可以进行逆向工程。但是更难。好吧,这不是一个严格的 java 解决方案。
正如 nfechner 在评论中所说,编写开源应用程序。