我想将我的产品提供给客户的离线CRM应用程序,该应用程序使用C++
编写,试用期为30天。我目前正在做的是给出一个加密文件,该文件记录当前日期,安装日期和一些计算,以检查这种差异,如果它的>30
- 软件不起作用。
但是,如果客户端没有更改系统日期,我的意思是,如果他关闭时间同步?如何让我的许可证在试用期内工作?
即使日期无效,小时会同步吗?
请告诉我。
答案 0 :(得分:4)
与其他所有安全问题一样,问题不在于是否可以绝对安全(因为它不是),而是安全性。
即使您能找到确保时间正确的方法,还会阻止用户删除或篡改文件?或卸载试用版软件,然后重新安装?或者反编译并删除文件检查?
BTW,Beyond Software Architecture概述了各种试用和演示软件的方法。从本质上讲,它回答了原始问题软件或防病毒产品的试用版如何真正起作用?
答案 1 :(得分:3)
您可以尝试保存上次发布的日期和时间。如果您发现时间已经解开(您上次发布的时间是将来),那么您清楚地知道用户是在作弊,并且可能会拒绝启动并显示错误消息。
但是,这应该仔细进行。时间应该存储为UTC,以避免在夏令时开始时发生的所有奇怪的东西。并且检测时间平移应该有足够的阈值,以便用户有一定的自由调整时钟,这是有充分理由的。