实施审判

时间:2014-04-07 14:31:51

标签: java drm trial

我已经制作了一个应用程序,其中我希望应用程序在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 functionalityHow to create a trial version of a Java program,但那里给出的答案并不令人满意。因为:
1.在一个答案中给出了使用“Rampart”,但这是一个付费应用程序,我不想使用它。
2.在另一个答案中,他们检查了系统日期,但正如我之前所说,我也不想使用它 3.一个问题和答案与功能有关,而不是我想要减少的功能 4.并且其中许多需要互联网,但我的客户可能不会一直使用它

我知道没有完美的DRM,每个人都可以破解。我在这里问的是我最好的投篮是什么? (注意:我的用户数量有限,我不会在线销售此应用程序)

更新:我认为这个问题不是主题,因为我真正要问的是如何让我的软件试用...我只是问怎么样?我知道它可以很容易破解但只是告诉我在java中设置试验的最佳方法是什么

2 个答案:

答案 0 :(得分:4)

使用包含以下内容的软件包发送数据文件:

  1. 客户姓名。
  2. 发货日期。
  3. 它应该过期的日期。
  4. 整个文件的校验和,因此无法编辑。
  5. 每次你跑:

    1. 检查校验和是否仍然有效。
    2. 检查文件修改日期是否表明该文件已被篡改。
    3. 在初始屏幕中显示客户名称。
    4. 确保文件上的模具日期不晚于失效日期。
    5. "触摸"该文件以确保它的模态更改为当前日期。
    6. 确保"触摸"工作
    7. 这样:

      1. 由于修改日期会发生变化,因此很难复制。
      2. 很难将副本分发给其他人,因为很容易获得来源。
      3. 应该可以检测到大多数不合时宜的篡改。
      4. 显然 - 没有添加硬件 - 不可能涵盖所有基础,但我发现这个方案运作良好。

答案 1 :(得分:1)

如果没有互联网连接,如果最终用户在公司网络中并且使用带有活动目录的窗口(如果客户端是Windows,则大多数公司都有活动目录),有一种方法可以留下,使用活动目录服务器作为时间服务器。大多数用户可能会在其客户端窗口上更改时钟时间,但由于其他受影响的软件(邮件服务器等),他们不想更改服务器上的时间。 License4J可以在本地活动目录服务器上查找和检查日期/时间。

(披露:我为License4J工作)