java - 如何保护 Java 类文件中的逻辑?

标签 java obfuscation reverse-engineering decompiling

我想在第三方的 Java 基础设施上运行专有算法。他们给了我一个 jar ,里面装着合适的物体,供我构建我的类(class)。我的想法是我给他们一个实现我的算法的类。

就“反编译”的难易程度而言,已编译的 Java 类与 jar 相比如何?

我认为保护自己的 IP 免遭逆向工程的最佳方法是通过混淆器运行它,如 How to protect a Jar file from being decompiled? 中所述。

除了因为他们的基础设施必须访问我的类中的命名方法,混淆器甚至提供那个级别的保护吗?或者,如果一方向另一方提供一个已编译的 Java 类,那么实际上不需要对算法进行逆向工程吗?如果是后者,那么还有什么其他方法可以提供更高的安全性?

(我意识到所有可访问的代码都可以进行逆向工程。我只是希望它需要合理水平的努力 - 理想情况下是编译 C 级别的东西。)

最佳答案

要了解反编译 Java 类和 JAR 有多么容易,请参阅 this decompiler 。如果您需要公开或实现公共(public) API,您可以混淆的内容将受到限制。

只要人们能够访问您的 Java 二进制文件,就很难防范逆向工程。您可以尝试使用 JVM 脚本引擎之一(rhino,...)来实现您的算法并保护该脚本,但您会受到某人堆转储您正在运行的算法的支配。

关于java - 如何保护 Java 类文件中的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31524785/

相关文章:

.net - Delphi vcl.net应用及反编译

vba - 加密和保护 VBScript 和 VBA 代码的最有效方法是什么?

reverse-engineering - 如何通过OllyDbg绕过IsDebuggerPresent?

java - 从 Java 项目生成 UML 类图

java.lang.IllegalStateException 错误消息

java - 使用 Java 客户端转移所有权

java - java中从一行中删除px的正则表达式

language-agnostic - 哪种语言可以保护我的源代码?

java - Htmlunit Javascript 按钮/链接

.net - Reflector 可以对 C++/CLI 应用程序进行逆向工程吗