【发布时间】:2019-03-06 06:21:00
【问题描述】:
我一直在开发一个简单的程序来阻止我的兄弟从凌晨 12 点到凌晨 5 点玩电脑,因为他上瘾了,他要求这样做,但他很容易通过更改 windows 系统绕过我的系统时间,我一直想知道是否有一种有效的方法来保护软件的时间变化
【问题讨论】:
-
也许您可以使用 REST 服务来获取当前时间? stackoverflow.com/questions/13240530/…
我一直在开发一个简单的程序来阻止我的兄弟从凌晨 12 点到凌晨 5 点玩电脑,因为他上瘾了,他要求这样做,但他很容易通过更改 windows 系统绕过我的系统时间,我一直想知道是否有一种有效的方法来保护软件的时间变化
【问题讨论】:
这很有趣。这是一个方法。不是100%万无一失,但如果你的兄弟不知道如何绕过它就足够了:
假设您的程序在 15:24:22 开始。它会记住那个确切的时刻,因为它是基线。同时,您启动了一个计时器:
Dim chron As Stopwatch = Stopwatch.StartNew()
chron.Start()
从此时起,您需要通过添加在chron 上经过的时间和您之前保存的基准时间来访问“现在”。为此,您应该有一个函数。
如果你的兄弟试图改变系统时间,chron和baseline都不会受到影响,所以他目前的绕过方法将不起作用。但是,他仍然可以更改系统时间,然后重新启动,并且在启动时程序会保存一个新的基线并被愚弄。不过,除非你告诉他,否则我怀疑他会走到这一步。
祝你好运,玩得开心!
【讨论】:
Dim webClient As New System.Net.WebClient Dim result As String = webClient.DownloadString("www.aragonloaders.ml/time") ??有很多方法可以做到这一点,但我很懒,所以我可能会用正则表达式来解决这个问题。