业余代码保护程序

时间:2016-07-05 09:51:10

标签: security

正如标题所暗示的那样,我对" good"这个程序是,如果我想创建我的程序的试用版,允许用户运行它一段时间,直到它到期。此外,一个典型的用户将不是一个特殊的"计算机文化"人 - 我认为这是一个重要的假设。

所以,这是一个伪代码:

at program installation:

    write encrypted (time_left = infinity) to registry

at every program run:

    calculate time_left = licence_limit_time - current_time
    (if registry.time_left doesnt extst)
        abort program
    (else)
        (if time_left >= registry.time_left)
            abort program
        (else)
            write time_left to registry 

程序安装的第一步确保删除注册表项将导致程序无法使用。

这个程序的重点是,它应该免费(除非我在这里遗漏了一些大的东西)给用户简单地改变系统时间。

非常欢迎任何意见和建议。

编辑:同样,假设程序已编译。

1 个答案:

答案 0 :(得分:0)

我不确定 public static class EMA { /** The alpha. */ private static double staticAlpha = 0.9; /** The old value. */ private static double staticOldValue = 1.0; private static Object monitor = new Object(); /** * Compute. * * @param pValue the value * @return the double */ public static double compute(double pValue) { synchronized (monitor) { if (staticOldValue == 0.0) { staticOldValue = pValue; return pValue; } } double lValue = staticOldValue + staticAlpha * (pValue - staticOldValue); synchronized (monitor) { staticOldValue = lValue; } return lValue; } } 的重点。如果您可以计算time_left,那么您不需要它的注册表副本。如果您信任注册表副本,那么您不需要计算。他们俩都没有真正改善任何事情。

具体来说,回滚注册表项和日期将解决您的保护问题。

这就是答案。这是对这个想法的评论:

实际上,您正在尝试实施DRM。对于所有情况,你无能为力,你可以将一个坚定的人推迟几个小时。您可以更好地花时间实施最简单的非平凡保护(检查日期)并改进产品。