【发布时间】:2016-06-28 16:38:11
【问题描述】:
我了解 StackOverflow 旨在回答特定问题并避免主观意见。我觉得我的问题只有一个正确答案,因此我在这里发帖。
我创建了一个 Java 桌面应用程序 (JavaFX),我计划将其分发用于商业用途。我读过 Java 代码很容易进行逆向工程,因此使用 ProGuard 之类的东西进行混淆至关重要。我想打包我的应用程序,以便用户双击 .exe(他们从我的站点下载),然后像任何标准软件一样运行安装程序。这似乎超出了 ProGuard 的范围,但我发现 JWrapper 和 Launch4J 似乎都提供了类似的功能。两者都声称将 jar 包装到 Windows 本机可执行文件中,显示启动画面,包括 JRE,但我对它们的不同之处感到困惑。
具体来说,我需要以下内容:
- 安装向导(即把exe放在安全的地方+在桌面上制作快捷方式,同时在某处添加EULA)。
- 添加指定用户限制的 EULA(最终用户许可协议)
- 应用程序的 Web 更新(JWrapper 似乎使用 URL + 构建路径提供此功能)
- 使用许可(License3j 似乎很有希望)保护应用程序(在某种程度上)的能力。
他们的功能可以在here 和here 中找到,但只有JWrapper 提到了perform web updates 的功能并提到了桌面快捷方式(我假设它也可以在某处写一个EULA.txt)。
那么,在我写完代码之后,ProGuard、JWrapper 和 Launch4j 应该按什么顺序应用呢?我猜首先是 ProGuard(缩小、优化和混淆),然后是 JWrapper,然后是 Launch4j?还是只有 3 个中的 2 个?
也请随意提出我可能遗漏的其他方法、工具或概念。谢谢!
【问题讨论】:
-
JWrapper 人还提供 JWCrypt,他们声称这是高效的代码保护,但它不是免费的。
-
这看起来很有希望,谢谢。它看起来像每年 500 美元,所以总是首选免费的替代品。但这并不现实,所以我想知道,如果我将所有敏感数据处理都放在服务器端,并花钱请一家有信誉的公司提供保护服务,那不是比 JWCrypt 更好吗?我的应用程序将只包含大部分骨架代码,并且会在整个运行过程中从服务器请求代码的“胆量”。有什么想法吗?泰。
-
如果您可以将要保护的代码保留在服务器端,那么假设服务器没有受到威胁,那么显然可以得到很好的保护。但是您的最后一条语句建议将代码从服务器拉到客户端,这当然不会比首先将其放在客户端应用程序上更安全。
标签: java javafx proguard launch4j jwrapper