在我的C#项目中,我想设置定时器检查验证我的exe文件并保护它。但是当我想检查验证时,我必须从Bios定时器或OS定时器获取定时器。它们都可以由最终用户更改。如何在没有bios定时器或OS定时器的情况下检查时间验证?
答案 0 :(得分:4)
(我的回答是假设您想要某种“过期”程序。)
最终所有大哥的回答是从外部源(例如,Web服务)检索可信时间。当然,连接(或缺乏连接)可能会使这变得不可能。
除此之外,知道如果有人要欺骗时钟,他们可能会非常接近到期时间,定期写一下当前时间的时间戳。如果您遇到检索到的(通过系统调用)时间小于上一个时间戳的情况,则有人可能试图欺骗时钟,您可以使用相应的错误消息使会话/实例无效。一旦你检测到“过期”的情况,就可以轻松翻转开关并拒绝再次运行。
所有这些都说,像这样的对策很可能总是被一个足够坚定的对手击败。