【发布时间】:2015-10-10 01:33:31
【问题描述】:
我想在第三方的 Java 基础架构上运行专有算法。他们给了我一个装有适当对象的罐子,让我可以建立我的班级。这个想法是我给他们一个实现我的算法的类。
就“反编译”的难易程度而言,已编译的 Java 类与 jar 相比如何?
我认为保护自己的 IP 免受逆向工程的最好方法是通过混淆器运行它,如 How to protect a Jar file from being decompiled? 中所述
除了因为他们的基础设施必须访问我的类中的命名方法之外,混淆器是否甚至提供 级别的保护?或者,如果一个人给另一方一个编译好的 Java 类,实际上不需要对算法进行逆向工程吗?如果是后者,那么还有哪些其他方法可以提供更高的安全性?
(我意识到所有可访问的代码都可以进行逆向工程。我只是希望它需要合理的努力——最好是编译后的 C 水平。)
【问题讨论】:
-
jar 基本上只是一个 .class 文件的 zip 文件,因此它们同样容易反编译。
-
混淆并签署您的代码
-
@ThorbjørnRavnAndersen - 对代码进行签名是否有效地加密了我未向其提供密钥的用户?
-
没有。它有助于避免您的代码被更改。
标签: java obfuscation reverse-engineering decompiling