encryption - 非网页游戏的安全在线高分列表

标签 encryption leaderboard

我正在玩我正在编写的 native (非网络)单人游戏,我突然想到有一个每日/每周/所有时间在线高分列表 (想想 Xbox Live 排行榜)将使游戏变得更加有趣,增加一些(少量)社区和竞争。然而,我担心人们会把这样的功能视为黑客邀请,这会因为高得离谱的分数而让普通玩家望而却步。

我考虑了防止此类尝试的明显方法(例如,公钥/私钥加密),但我已经找到了黑客可以绕过我所有想法的相当简单的方法(从二进制文件中提取公钥,从而例如,发送虚假的加密乐谱)。

您曾经实现过在线高分列表或排行榜吗?您是否找到了一种合理的防黑客方法来实现这一点?如果是这样,你是怎么做到的?您在黑客攻击方面有什么经验?

最佳答案

归根结底,您依赖的是对客户的信任。如果客户端将重播发送到服务器,则很容易复制或修改成功的游戏并将其发送到服务器。

你最好的选择是将作弊的标准提高到玩家认为值得超越的标准之上。为此,您可以使用许多经过验证(但经常未被提及)的技术:

  1. 将列入黑名单的作弊者留在蜜 jar 中。他们可以看到自己的分数,但其他人看不到。除非他们通过使用不同的帐户登录进行验证,否则他们认为自己已经成功入侵了您的游戏。
  2. 当某人被标记为作弊者时,请将任何帐户影响推迟到 future 某个特定时间点才发生。在一到三天内随机选择这一点。通常,作弊者会尝试多种方法并最终成功。通过将帐户状态反馈推迟到稍后日期,他们无法理解是什么让他们被捕。
  3. 捕获所有游戏用户命令并将其发送到服务器。对照给定增量内的其他分数验证它们。例如,如果玩家使用射击 Action 200 次,但获得了 200,000 分,但游戏中的相邻玩家射击了 5,000 次,获得了 210,000 分,则可能会触发阈值,将该人标记为进一步或人类调查。
  4. 为您的用户帐户增加值(value)和持久性。如果您的用户帐户可以解锁您的游戏,或者您的游戏需要购买,则禁令的影响会更大,因为用户无法通过基于网络的代理创建新帐户来恢复其之前的帐户状态。

关于encryption - 非网页游戏的安全在线高分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25999/

相关文章:

c++ - 使用字母字符加密/解密 XOR

ios - 如果网络不可用,Game Center/GameKit 报告分数

linux - 为 IPSec 使用 Linux 内核加密 API

encryption - UTF-8 ASP经典中的RC4加密和解密

java - 如何在 Java 中解密 Obj-c 中加密的数据

html - 居中对齐排行榜广告

r - 如何在 r 中的 h2o.automl 排行榜中打印所有模型的可变重要性

java - 加密和解密的问题

sprite-kit - 游戏中心上不同的高分类型

Android 排行榜不会显示