我目前正在使用 Java 服务包装器。它工作得很好,我可以使用我的可执行 jar 将其作为服务安装,甚至在将其作为服务安装时传递 VM 参数。
但是由于这将在这里和那里部署,我想知道如何防止人们检索 Jar 文件中的源文件。这可能吗?我正在考虑将 jar 文件转换为 .exe 文件,并将其安装为类似的服务,因为我发现了几个能够做到这一点的工具。但他们似乎不允许我传递 VM 参数。
那么有人知道我应该如何处理这件事吗?
我目前正在使用 Java 服务包装器。它工作得很好,我可以使用我的可执行 jar 将其作为服务安装,甚至在将其作为服务安装时传递 VM 参数。
但是由于这将在这里和那里部署,我想知道如何防止人们检索 Jar 文件中的源文件。这可能吗?我正在考虑将 jar 文件转换为 .exe 文件,并将其安装为类似的服务,因为我发现了几个能够做到这一点的工具。但他们似乎不允许我传递 VM 参数。
那么有人知道我应该如何处理这件事吗?
您的用户必须能够运行您的.jar
文件。所以你不能阻止他们知道正在运行的代码,同时也让他们运行你的代码。您只能努力使最常见的反编译和逆向工程策略变得困难。
如果您必须隐藏您的代码,这里有一些选项:
.jar
文件已经阻止人们查看源代码。查看 .jar,您应该看不到源.java
文件(除非您特别选择包含它们)。.class 文件必须包含在内,并且可以将它们反编译成与您的程序等效的机器可读,但它不容易阅读或理解。
用 C 重写程序,然后在源代码上使用混淆程序并从中编译。这是尽可能锁定和隐藏的。任何查看您的代码的人都会看到完全人类无法理解的胡言乱语,很难修改以使其易于理解,因此只需观察程序行为并编写一个模仿它的新程序就变得容易得多。
将您的 jar 文件转换为 Windows 的 .exe:如何将我的 Java 程序转换为 .exe 文件?
核选项:
如果您有外星飞船/钢铁侠套装的源代码,并且您必须不惜一切代价隐藏此代码,那么您将需要在使用您的程序时删除使用它的用户的权利和自由。任何一个用户都不能被允许足够接近地观察或理解你的程序,以了解它是如何做的。第三方必须参与随机化和混淆,不仅是代码本身,还有用户如何理解正在完成的任务的感知。雇佣的暴徒或恶意软件可以监视用户对程序的使用,并在检测到他们试图理解或构建您的代码的提示时电死用户或自毁。源代码必须具有自我意识并在可疑行为时自行删除。
微软和 XBox 正在使用这些策略,通过编写硬件和软件来消除用户的权利和自由,如果你惹恼了母舰,它们就会自行变砖。拿起那罐公民。不要让我捉弄你。