【发布时间】:2014-05-19 20:55:07
【问题描述】:
我已经提出了一个申请,我希望申请应该在 180 天后过期,但问题是如果我采用系统日期,任何人都可以更改它并继续,我也不能采用互联网日期,因为很多时候用户将离线工作。那么我如何让它进行试验,然后它会自我毁灭呢?我不能放任何其他 DRM,因为我已经读过检查 MAC 地址是一个非常糟糕的 DRM,在经历了Making commercial Java software (DRM) 之后,我意识到我必须让它变得简单一些。所以我的想法是我计算应用程序启动了多少次,但是我在哪里存储值在注册表中? (我已经看过了:read/write to Windows Registry using Java)
我也读过Create a trial version of a Java application, with limited functionality 和How to create a trial version of a Java program,但那里给出的答案并不令人满意。因为:
1. 在一个答案中,给出了使用“Rampart”,但这是一个付费应用程序,我不想使用它。
2. 在另一个答案中,他们检查了系统日期,但正如我之前所说,我也不想使用它。
3. 一问一答与我不想减少的功能有关
4. 还有许多需要互联网,但我的客户可能不会一直使用它
我知道没有完美的 DRM,每个人都可以破解。我在这里问的是我最好的镜头是什么? (注:我的用户数量有限,我不会在网上销售这个应用程序)
更新:我相信这个问题不是题外话,因为我真正要问的是如何让我的软件试用......我只是问如何?我知道它很容易破解,但请告诉我在 java 中设置试用的最佳方法是什么
【问题讨论】:
-
老实说,如果您想要严格的 DRM,您将需要组合工具。请注意,一旦用户能够切断网络通信,维护该 DRM 就会变得更加困难。那样,Java 可以很容易地被反编译,他们可以删除任何提供 DRM 的代码。
-
注册表项可以删除:) PS:你不能保护应用程序,如果你的软件太酷我不想付钱,我可以在虚拟机中运行它,当试用结束,例如在另一个 VM 中运行它,你不能阻止我 :)
-
@Rogue Java 可以反编译吗?我从没听说过。
-
@DakshShah 尝试谷歌搜索
jd-gui,它是一个非常准确的反编译器,适用于比 java 1.5 更新的源代码。 -
@SvetlinZarev 是的,这就是问题所在,我无法阻止像你这样的人。但我想做一些事情,让比你更不了解的人不能破解我的软件,因此我有某种良好的安全性