避免游戏中心的排行榜黑客攻击
Posted
技术标签:
【中文标题】避免游戏中心的排行榜黑客攻击【英文标题】:Avoid Leaderboard Hacking on Game Center 【发布时间】:2011-04-13 00:18:33 【问题描述】:有没有人找到一种方法来避免对 Game Center 的 leaderbaord 黑客攻击,或者至少让游戏中心变得更加复杂?
您可以观看 HackCenter 的视频,这是一款 Cydia 应用程序,可让您在此处提交所需的任何分数:Hack Center
尽管该应用程序不应该在 Cydia Store 上提供,但我们都已经在 AppStore 上的几款游戏中看到了明显虚假的分数。与该视频中提交的分数不同,虚假分数通常高得离谱,并且会阻止其他玩家,因为他们永远无法到达排行榜的顶部。
我无法找出破解是如何完成的(我假设他们与 http 调用相交,只是用他们想要的任何东西替换 score 参数?)。
感谢任何见解。
【问题讨论】:
由于分数提交来自不受信任的客户端,它几乎是一个荣誉系统。可以是extremely difficult to catch cheaters,说到底,都是为了好玩。一种可能的机制是记录整个游戏的事件/动作,并在模拟器上回放它们,但即便如此,也有人可以通过足够的努力伪造一个“完美的游戏”日志。 【参考方案1】:问题源于允许用户在设备端生成自己的分数数据。如果所有与分数相关的计算都在服务器端完成,然后发布到记分板上,这将更加困难(我不知道您的应用程序是如何工作的,所以我不能推荐特定的技术)。
我认为您能做的最好的事情是记录他们如何获得真正高分的数据,供您稍后查看。根据您的游戏结构,这可能是不可能的。根据您的游戏结构,它也可能是可锻造的。例如,某些游戏分数仅由于游戏运作方式的物理特性而无法在游戏中获得。在我看来,这是你最好的防御措施。可悲的是,这需要一直监控它......
此外,即使您可以验证假分数,也有人可能整天不断地伪造假分数,而您将永远跟不上它。某人的分数提交机器人将最终获胜。这不是人类,你是。它可以整天发布假分数,你不能整天看假分数,你不能验证成千上万的假提交。尝试验证用户端生成的任何内容(例如设备 ID、正在安装的应用程序等)都是没有意义的。它可以被伪造。 IP地址也没有意义。您的应用程序是一个移动平台,可以从手机公司获得他们想要的全新 IP。如果有人因此而想对您隐藏,那么跟踪单个合法真实用户非常困难。
也许您也可以在 Apple 的帮助下进行某种应用购买验证。这将使您更容易禁止违规者。他们将不得不付钱给你来伪造你的排行榜,哈哈。
这只是我的 2 美分,希望对您有所帮助。
【讨论】:
感谢您的回答,但我正在使用 Game Center,据我所知,在提交到排行榜后我无法删除分数。 我在 SO 上找到了这个。第一条评论说,根据他的链接上的第 3 页,这是可能的。因为没有账号所以看不懂。 ***.com/questions/3961926/… 谢谢,这绝对有帮助。 许多现代游戏已经使作弊几乎不可能,同时不需要人工监控:例如,参见星际争霸 2。 @EliBud:您现在可以查看和管理所有 Game Center 排行榜的前 100 名分数和用户名。见:***.com/a/19843552/1265240【参考方案2】:因为他们正在做一个http intercept,很遗憾你无能为力。我什至发现在 iTunes Connect 中设置排行榜的最高分数没有任何效果。
我参与过的一款游戏从未将分数连续写入磁盘 - 所以它不能在那里更改 - 并将最大分数设置为 30m。然而,在发布后的几个小时内,排行榜就充满了 IntMax 分数。
希望 Apple 将在 WDC13 中进行一些修复,因为就目前而言,全球排行榜毫无用处。
【讨论】:
很遗憾,这似乎仍然是个问题。 显然 gamecenter 订阅现在通过 https 发送,使得中间人不可能。他们还在 iTunes Connect 上提供了更好的管理工具。但是你仍然需要加密你的存档并防止内存戳攻击。【参考方案3】:您可以尝试检查用户是否安装了我猜的那个东西,然后如果他们有应用程序,则禁止他们输入高分。
我个人只会检查 Cydia:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]
我不确定 Hack Center 的网址到底是什么,但也许您可以尝试猜测几次。我猜是“cydia://hack_center”之类的。然后,一旦您找到该 url,请将其替换为 'cydia://'。
【讨论】:
感谢您的想法,但这对我来说确实行不通,因为有很多安装了 Cydia 的人至少在 AppStore 上购买了一些应用程序。最重要的是,我完全不确定我在某些游戏上看到的虚假分数是通过 Hack Center 提交的。 这是一个基于谬误的论点,即我安装了 Cydia,这是否会让我自动成为骗子?它也存在缺陷,就像防病毒软件只检测过去识别的恶意软件,而不是现在和将来保护应用程序。 我认为将手指交给拥有 Cydia 的人是完全可以的。 这种方法的问题是您正在设备端检查 Cydia....。如果您可以伪造分数,则无需从伪造的应用程序中检查 Cydia 是否存在。 @RLH:很抱歉,我不完全理解您的评论。但是,是的,这种方法确实有其缺点,尽管这里的每个解决方案都有缺点,但这只是您可以采取的一种有助于减少作弊的行动。【参考方案4】:有两个高分表:有cydia的,没有的:P
【讨论】:
【参考方案5】:您还可以设置自己的服务器并使用适当的身份验证和加密通道上传分数,然后将服务器中的内容与 GameCenter 中的内容进行比较...您仍然需要清理排行榜,但至少您会知道要修复什么以及将哪些用户列入黑名单。
【讨论】:
以上是关于避免游戏中心的排行榜黑客攻击的主要内容,如果未能解决你的问题,请参考以下文章