将JAR文件转换为可执行文件是否可以保护它以进行分发?

时间:2012-12-13 09:58:26

标签: java security jar decompiling

我在Java中创建了一个应用程序,并且我已经使用软件将应用程序jar文件转换为.exe以防止提取,因为我们知道可以轻松地提取和解编译JAR文件。

有人可以告诉我,将.jar文件转换为.exe是否足够安全,可以分发给任何客户。

3 个答案:

答案 0 :(得分:2)

没有什么是100%安全的。将jar转换为exe你正在杀死超级重要的java功能:跨平台。 Exe文件不再是跨平台的。它是为特定平台(例如MS窗口)创建的。

如果你想阻止你的代码进行逆向工程,请使用混淆:改变字节代码的过程,以便它可以被反编译,但在解编译后很难理解它。如果您想要更高的安全性,可以在运行时下载部分代码并运行它们。下载可以使用SSL完成,因此非常安全。您还可以创建自定义类加载器并针对受密码保护的zip文件运行。

因此,有很多方法可以保护您的代码,创建exe文件是最弱的方法。

答案 1 :(得分:1)

嗯,有两种EXE生成器:

  1. 攻击JAR文件的最小JRE
  2. 将您的代码转换为本机代码
  3. 两者都很难反编译那个纯JAR文件,但第二个更安全。

    据我所知,原生编译器都是商业编译器,所以如果你需要一个免费的转换器,你只需要第一个选项。在这种情况下,我建议您首先使用(非流)混淆器(例如yGuard),然后将混淆的JAR文件转换为EXE。

答案 2 :(得分:1)

  

有人可以告诉我,将.jar文件转换为.exe是否足够安全,可以分发给任何客户?

不,不是。混淆可能会让它变得更难。