检查VB.NET中的日期是否已更改

时间:2014-09-16 14:31:25

标签: vb.net protection

我创建了一个运行良好的激活系统。我直言不讳。我通过加密系统在注册表中插入程序的截止日期,每次我检查软件的时间是否与PC的日期对应的记录。系统仅在用户发回PC日期无限制日试时才有效。 这显然会伤害整个系统。 你可以阻止这个吗?也许在程序中保存PC的日期并检查用户是否已被篡改?我依靠专家的解决方案来解决这个敏感话题。

谢谢,抱歉我的英语不好。

2 个答案:

答案 0 :(得分:1)

有一个原因是Office和Photoshop正在迁移到云端,许多新游戏要求用户始终在线进行播放。确实没有一种万无一失的方法可以防止用户绕过您可能实施的任何类型的客户端保护。即使您的应用程序拨打回家,充满动力的用户也可以将此流量重新路由到他们自己的计算机并伪造成功的授权,或修补您的代码以便不首先尝试授权。

您在尝试创建激活系统时正在进行军备竞赛。您需要决定您愿意在多大程度上防止未经授权使用您的应用程序。您制作它越复杂,它就越容易中断,并且您的应用程序越有可能错误地阻止合法用户使用它。

答案 1 :(得分:0)

我提出的最好的方法是使用第二个注册表设置来保存本地计算机的日期时间。我在应用程序启动和关闭时更新此内容。

然后,当您检查注册表设置的截止日期时,还要检查其他日期以确保它早于当前计算机日期。如果没有,他们就会篡改时间,我把它们关了。

如果他们很聪明并且知道你在做什么(不太可能),他们可以通过将他们的计算机上的时间移回到最后一次关闭之后延长试用期。这会有一段时间,但最终会耗尽时间。

PROs:减少篡改的机会,不需要互联网连接

缺点:不能使用具有UNDO磁盘的虚拟机,用户可以延长试用期但不能长时间,需要写入注册表。

注意:请确保始终保存UTC时间,以防日光节省时间倒退。

您应该确保在安装包中创建了初始注册表设置。这样,如果注册表设置不存在,您可以假设他们尝试删除它以篡改试用期 - 将其锁定。毕竟,如果你在你的应用程序中进行初始注册表设置,你怎么知道这是第一次运行还是千分之一,他们只是继续删除注册表项?

相关问题