4

我目前正在使用 Java 服务包装器。它工作得很好,我可以使用我的可执行 jar 将其作为服务安装,甚至在将其作为服务安装时传递 VM 参数。

但是由于这将在这里和那里部署,我想知道如何防止人们检索 Jar 文件中的源文件。这可能吗?我正在考虑将 jar 文件转换为 .exe 文件,并将其安装为类似的服务,因为我发现了几个能够做到这一点的工具。但他们似乎不允许我传递 VM 参数。

那么有人知道我应该如何处理这件事吗?

4

1 回答 1

3

您的用户必须能够运行您的.jar文件。所以你不能阻止他们知道正在运行的代码,同时也让他们运行你的代码。您只能努力使最常见的反编译和逆向工程策略变得困难。

如果您必须隐藏您的代码,这里有一些选项:

  1. .jar文件已经阻止人们查看源代码。查看 .jar,您应该看不到源.java文件(除非您特别选择包含它们)。.class 文件必须包含在内,并且可以将它们反编译成与您的程序等效的机器可读,但它不容易阅读或理解。

  2. 用 C 重写程序,然后在源代码上使用混淆程序并从中编译。这是尽可能锁定和隐藏的。任何查看您的代码的人都会看到完全人类无法理解的胡言乱语,很难修改以使其易于理解,因此只需观察程序行为并编写一个模仿它的新程序就变得容易得多。

  3. 将您的 jar 文件转换为 Windows 的 .exe:如何将我的 Java 程序转换为 .exe 文件?

核选项:

如果您有外星飞船/钢铁侠套装的源代码,并且您必须不惜一切代价隐藏此代码,那么您将需要在使用您的程序时删除使用它的用户的权利和自由。任何一个用户都不能被允许足够接近地观察或理解你的程序,以了解它是如何做的。第三方必须参与随机化和混淆,不仅是代码本身,还有用户如何理解正在完成的任务的感知。雇佣的暴徒或恶意软件可以监视用户对程序的使用,并在检测到他们试图理解或构建您的代码的提示时电死用户或自毁。源代码必须具有自我意识并在可疑行为时自行删除。

微软和 XBox 正在使用这些策略,通过编写硬件和软件来消除用户的权利和自由,如果你惹恼了母舰,它们就会自行变砖。拿起那罐公民。不要让我捉弄你。

于 2013-09-10T12:20:46.800 回答