我想为我的产品提供一个离线 CRM 应用程序给客户,C++
试用期为 30 天。我目前正在做的是提供一个加密文件,其中记录了当前日期、安装日期和一些计算,以检查这种差异,如果它的>30
软件不起作用。
但是如果客户不更改系统日期怎么办,我的意思是如果他关闭时间同步?我怎样才能让我的许可证在试用期内工作?
即使日期处于非活动状态,时间也会同步吗?
请告诉我。
与其他所有安全问题一样,问题不在于是否可能绝对安全(因为它不是),而是如何安全。
即使你能找到一种方法来确保时间是正确的,什么会阻止用户删除或篡改文件?还是卸载试用软件,然后重新安装?还是反编译并删除文件检查?
顺便说一句,Beyond Software Architecture概述了试用和演示软件的各种方法。从本质上讲,它回答了最初的问题,软件或防病毒产品的试用版如何真正起作用?
您可以尝试保存上次启动的日期和时间。如果您检测到时间已经结束(您的最后一次启动是在将来),那么您清楚地知道用户在作弊并且可能会拒绝启动并显示错误消息。
然而,这应该谨慎进行。时间应该存储为 UTC,以避免在夏令时开始时发生的所有奇怪的事情。时间展开的检测应该有足够的阈值,以便用户有充分的理由自由调整时钟。