正如标题所暗示的那样,我对" 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
程序安装的第一步确保删除注册表项将导致程序无法使用。
这个程序的重点是,它应该免费(除非我在这里遗漏了一些大的东西)给用户简单地改变系统时间。
非常欢迎任何意见和建议。
编辑:同样,假设程序已编译。
答案 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。对于所有情况,你无能为力,你可以将一个坚定的人推迟几个小时。您可以更好地花时间实施最简单的非平凡保护(检查日期)并改进产品。