锁定Jar文件,将源文件隐藏在.jar文件中

时间:2013-09-10 12:00:00

标签: java service executable executable-jar

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

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

那么有人知道我应该怎么做这件事吗?

1 个答案:

答案 0 :(得分:3)

您的用户必须能够运行您的.jar文件。因此,您无法阻止他们了解正在运行的代码,同时也让他们运行您的代码。您只能努力使最常见的反编译和逆向工程策略变得艰难。

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

  1. .jar个文件已经阻止人们查看来源。查看.jar​​,您不应该看到源.java文件(除非您特别选择包含它们)。必须包含.class文件,并且可以将它们解编译为与您的程序相当的机器可读,但它不易于阅读或理解。

  2. 在C中重写程序,然后在源代码上使用obfuscate程序并从中进行编译。这就像锁定和隐藏一样。任何看过你的代码的人都会看到完全人性化难以理解的乱码,这些乱码难以修改而且难以理解,只是观察程序行为并编写一个模仿它的新程序变得容易得多。

  3. 将您的jar文件转换为Windows的.exe文件:How can I convert my Java program to an .exe file?

  4. 核选项:

    如果您拥有外星人太空船/钢铁侠套装的源代码,并且您必须不惜任何代价隐藏此代码,那么您将需要删除使用它的用户的权利和自由使用你的程序。不允许任何单个用户观察或理解您的程序足够接近,以了解它是如何做它正在做的事情。必须让第三方随机化和混淆代码本身,以及用户如何理解任务正在完成的感知。雇佣的goon或malware可以监视用户对程序的使用,并且如果用户检测到他们试图理解或建立在您的代码上的提示,则会电击用户或自毁。源代码必须具有自我意识,并在可疑行为中自行删除。

    微软和XBox正在使用这些策略,通过编写硬件和软件来消除用户的权利和自由。拿起那个公民。不要让我诅咒你。