iPhone:如何通过改变设备来修复作弊';谁的日期?有没有一台服务器可以帮我计算时间?

iPhone:如何通过改变设备来修复作弊';谁的日期?有没有一台服务器可以帮我计算时间?,iphone,datetime,time,nsdate,ipod,Iphone,Datetime,Time,Nsdate,Ipod,我有一款iPhone游戏,可以随时间分配游戏内的货币,有人发现你可以通过更改设备上的日期来提前获得奖励 我发现蓝精灵村也有类似的问题,他们不知怎么发现了篡改。有人知道他们是怎么做的吗?我唯一能想到的就是从外部服务器获取时间,这需要设备在线,但我想这总比什么都没有好。。。有人知道我在哪里可以找到一台只告诉你时间的服务器吗?你只需使用其中一台时间服务器,可以通过互联网获得。这是一个非常简单的协议,您可以毫无问题地解析回复。您可以使用任何NTP服务器(请参阅) 此外,您还可以通过存储应用程序运行的最新

我有一款iPhone游戏,可以随时间分配游戏内的货币,有人发现你可以通过更改设备上的日期来提前获得奖励


我发现蓝精灵村也有类似的问题,他们不知怎么发现了篡改。有人知道他们是怎么做的吗?我唯一能想到的就是从外部服务器获取时间,这需要设备在线,但我想这总比什么都没有好。。。有人知道我在哪里可以找到一台只告诉你时间的服务器吗?

你只需使用其中一台时间服务器,可以通过互联网获得。这是一个非常简单的协议,您可以毫无问题地解析回复。

您可以使用任何NTP服务器(请参阅)


此外,您还可以通过存储应用程序运行的最新日期来实现一些简单的验证,并检查该日期是否不再返回。

如果您绝对无法检查远程ntp服务器,则至少可以提供一层保护


检查时间和时区如果您注意到时间上的变化不归因于大于DST变化的时区变化,请暂停您的资金分配

您可以使用NTP服务器告诉您时间

直到有人使用代理服务器找出您试图连接的NTP服务器,然后伪造NTP响应。。。正如其他人提到的,响应很容易解析,因此也很容易伪造

一个更好的解决方案是使用谷歌应用程序引擎(免费)之类的东西,向你的应用程序发送某种加密响应,这种响应可以归结为服务器时间。如果客户端时间与服务器时间相差太大,应用程序只需使用服务器时间进行计算。然后,即使他们拦截了请求,他们也无法轻松地发回正确的响应


但基本上在任何网络游戏中,你必须始终假设客户在撒谎。防止问题的唯一真正方法是让所有东西都通过服务器,这样客户机就不能决定它突然变得丰富,也不能让任何其他客户机同意它是这样的…

如果在线,您应该使用加密协议检查NTP服务器,或者最好是您自己的时间戳服务器

脱机时,您可以不添加货币,也可以在每次激活应用程序时为货币添加时间戳,并检查是否存在欺骗行为(时间戳的非单调变化过大,以允许旅行和时钟漂移)。然后,你可以以某种方式降低任何非法所得的价值:虚拟谷仓着火,游戏中的所有东西突然变得更贵,银行转账费用变得比转账金额更高,等等。

iPhone: 打开游戏,让其加载并使用所有能量,然后转到: *背景 *一般的 *日期和时间 关闭自动 向前设置1小时(或更多,取决于等待时间,即3小时内充满电向前设置3小时)
重新打开游戏,并不适用于所有游戏

如果仔细查看HTTP请求和响应的标题,您会发现确定从服务器到客户端的时钟偏移所需的时间信息几乎总是可用的


为了在断开连接的操作中跟踪绝对时间,您可以使用系统单调时钟,在iOS上它是系统的一部分。您还需要从sysctl保存引导UUID和引导时间,以便捕获系统重新启动。

“并检查日期是否永不倒转。”这不是在马出来后关上牲口棚的门吗?这是怎么回事?date goes back=>无新货币且不缓存回日期。不过,若作弊者可以简单地关闭WiFi等,那个么在服务器上回复似乎有点脆弱。若他们改变时区呢?我想你可以使用格林尼治标准时间,观察天气的主要变化time@westsider-日期返回时,钱已经用完了(我假设日期必须提前才能“提前”拿到钱)@KevinDTimm-啊。。。那么,在首次运行之前,时间会被推迟吗?有道理。感谢您的解释。您不知道此漏洞的类型吗?我在想这个