我目前正在使用Java服务包装程序。它运作良好,我可以使用我的可执行jar将其作为服务安装,甚至在将其作为服务安装时传递VM参数。
但是,由于将在此进行部署,所以我想知道如何防止人们检索Jar文件中的源文件。这可能吗?我正在考虑将jar文件转换为.exe文件,并将其作为这样的服务进行安装,因为我发现了一些能够执行此操作的工具。但是它们似乎不允许我传递VM参数。
有人知道我该怎么做吗?
最佳答案
您的用户必须能够运行您的.jar
文件。因此,您不能阻止他们知道正在运行的代码,同时还要让他们运行您的代码。对于最常见的反编译和逆向工程策略,您只能付出努力使生活变得艰难。
如果必须隐藏代码,则可以使用以下选项:
.jar
文件已经阻止了人们查看源代码。在.jar中查找,您应该不会看到.java
源文件(除非您专门选择包括它们)。必须包含.class文件,并且可以将它们反编译为与您的程序相同的机器可读格式,但阅读或理解起来并不容易。 核选项:
如果您拥有外星飞船/铁制男式西服的源代码,并且必须不惜任何代价隐藏此代码,那么在使用程序时,您将需要删除使用它的用户的权利和自由。不允许任何单个用户足够近地观察或理解您的程序,以了解程序的运行方式。必须让第三方参与进来,不仅使代码本身随机化和混淆,而且使用户对正在完成的任务理解得如何。租用的goon或恶意软件可以监视用户对该程序的使用,并在检测到暗示他们试图理解或建立在您的代码上的提示时将用户电击或自我毁灭。源代码必须具有自我意识,并在出现可疑行为时自行删除。
Microsoft和XBox使用这种策略通过编写硬件和软件来消除用户的权利和自由,如果您遇到麻烦,这些硬件和软件会使其自身陷入困境。可以接公民。不要让我凝视你。