【问题标题】:How to stop people from editing save files如何阻止人们编辑保存文件
【发布时间】:2016-11-09 05:05:31
【问题描述】:

(首先,如果这属于另一个 stackexchange 站点,请说出来。我不确定这是否属于这里。)

我正在制作电脑游戏。这是一个roguelike,这意味着一旦你死了,你的保存文件就会被删除。您可以通过复制您的保存文件然后在您死后恢复它来轻松地作弊。当然,我想阻止人们这样做。我已经有了一些想法:

  1. 加密保存文件。这使得人们只能复制+粘贴文件。
  2. 不仅仅是保存文件。拥有某种类型的“主文件”,其中包含您玩过多少游戏、哪些游戏已经死亡等信息。一旦有人死亡,主文件就会检测到有人试图恢复旧的保存文件。

不过,在此之后,人们可以从之前和之后复制并粘贴整个游戏文件夹,它仍然可以正常工作。我接下来的几个想法有点难以实现:

  1. 使用时间戳来检测某人何时编辑了文件。问题是人们根本无法移动文件。我可以拥有某种类型的“导出/冻结”功能,但这很容易被滥用。此外,如果某些其他程序在不知情的情况下编辑了该文件,则可能会使游戏认为您在作弊,而实际上您并没有。我还看到在线程序可以让您编辑时间戳。
  2. 使用注册表来保存一些信息。我试图让我的游戏有点跨平台,我不知道在非 Windows 系统上是否有类似注册表的东西。但人们仍然可以编辑注册表。

现在,我认识到没有绝对的方法可以阻止作弊。我只是想办法尽可能减少作弊者的数量。

所以,我的问题:

  1. 想法 3 和 4 是否可行?
  2. 有没有其他好的方法可以阻止人们编辑/替换文件?

【问题讨论】:

  • 当然,我想阻止人们这样做——当然不是。为什么?
  • 与其完全删除文件,不如擦除/重置其内容。或者在其中放置一个死亡时间时间戳。然后使用校验和/哈希来阻止对文件的编辑。然后在你这样做之后,忘记它,并且根本不要费心阻止作弊者。想要作弊的人通常会找到绕过您提出的任何保护措施的方法,然后他们可能会与其他作弊者分享该信息。除非您是价值数百万美元的游戏开发者,或者试图保护用户的财务或个人数据,否则尝试阻止作弊者是不值得的。
  • @TessellatingHeckler Permadeath 是 roguelikes 的定义特征之一。它们是围绕“一旦你死了,你的文件就会永远丢失”这一概念构建和平衡的。
  • @Remy 我认为我提到的前两件事就是你所说的。如果我能找到一种方法来阻止人们以其他方式作弊,我会实施它,但如果我找不到其他任何东西,我就不会担心它。我只是看看我还能做些什么。

标签: anti-cheat


【解决方案1】:

如何阻止人们编辑存档?

你不能。

我只是想办法尽可能减少作弊者的数量。

试图阻止作弊者只会鼓励他们,因为开发游戏作弊的全部目的是挑战自己,做出更好的挑战只会让游戏变得更有趣。

但这里只是一些提示:

使用非常晦涩的方法加密/混淆保存文件

使用一种非常模糊的方法对保存文件进行哈希处理,将哈希存储在其他地方。加载保存文件时,与哈希值进行比较。

随机想法:为了使查找第二个哈希文件更加困难和混乱,请将其存储在使用相同文件扩展名的模型/纹理中。所以当游戏加载时,它会同时从同一个目录加载纹理和哈希文件。这将使没有良好逆向工程技能的普通作弊引擎用户很难找到。

使用简单的反调试技术,例如 IsDebuggerPresent()

要了解更多 Windows 反调试技术,最好的资源是:

Peter Ferrie 的“终极”反调试参考

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2013-09-23
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多