首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#如何检查终端用户快速转发Windows日期

C#如何检查终端用户快速转发Windows日期
EN

Stack Overflow用户
提问于 2020-01-27 15:02:23
回答 1查看 277关注 0票数 0

我正在编写一个C# Windows应用程序,并将提供试用版和完整版本。对于试用版,我希望为最终用户提供每日使用信用(即每天使用应用程序中的特定功能的3个学分)。

我见过许多防止系统日期篡改的文章和讨论,但我看到的所有文章和讨论都是为了提供试用期;反对将系统日期更改为以前的日期。以下是一些:

https://www.codeproject.com/Articles/1101956/Check-for-Clock-Tampering-to-Extend-Licence-Durati https://stackoverflow.com/a/16530146/3350921

但在我的例子中,我有相反的商业案例。如果用户通过快速转发到未来一天来篡改系统日期,那么只需更改日期就可以轻松地获得使用信用。很明显,我不想这样。

作为经验规则,您有什么建议吗?如何检查C# Winforms应用程序中的日期篡改,不仅是为了向后,也是为了向前方向?

Ps。我需要完全实现这个离线。NTP或外部API调用是一个很好的解决方案,但是这个应用程序可能主要用于离线客户端。

Ps2。Windows正在考虑检查Windows的特定系统文件的“最后修改时间”属性。例如,如果有这样一个Windows系统文件,每次Windows重新启动时都会更新它的“最后修改时间”,那么我觉得我可以快速地识别系统日期。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-01-27 16:03:51

许多评论说,在本地管理它并不是愚蠢的,用这个类比,任何开发的软件也是如此,但是我不得不承认,当你被沙箱装在本地pc上,用户可以完全控制的时候,事情就不那么容易了。

这里的问题是,您愿意添加多少层,以使其难以打破。以及该软件对环境修改的容忍度是什么,这与UX的成本有关。有很多层次的安全和最少的容忍。你已经把它硬得很好了。

我可以想到的一些安全层

  • 将注册表单元中的计时器逻辑加密为二进制值。
  • 在事件查看器中查找与篡改系统属性有关的任何特定更改。(对系统日期的更改可以捕捉到自动启动的here)
  • Implementing服务(如果您希望监视something)
  • Watch的反编译器并终止许可证),如果已知PC的necessary
  • MacAddress被怀疑破坏了软件,则调用自动删除(当internet连接成为下一个established)

时,可以将其存储并发送回远程服务器)。

您可以设置容忍级别,这是应用程序对可疑操作的响应方式。

示例:如果您怀疑有人试图停止您的服务或操作/删除注册表,您可以警告或终止许可证或任何您想要执行的反措施。

免责声明:其中有些可能是侵入性的,这是你必须牺牲的代价

P.S.:

我相信有更多的方法来强化它,你有什么想法?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59933692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档