游戏客户端的基本保护

Basic Protection of a Game Client

本文关键字:保护 客户端 游戏      更新时间:2023-10-16

我目前有一个多人游戏,玩家开始使用内存编辑来取消攻击动画,使攻击数据包进入得更快或使攻击比正常情况快得多。

是的,更好的设计将是理想的,但这可能需要一段时间。我想得到一个可以快速完成的临时修复。

想法:

  • 检查最后一个攻击数据包之间的时差,忽略所有太快的内容。(对于服务器(
  • 使用EnumWindows检查窗口类,如果检测到已知的内存编辑器,则停止游戏。 每次进行攻击时都会执行EnumWindows。(对于客户(
  • 使用 ReadProcessMemory 读取正在运行的进程并查找已知内存编辑器的符号。

那么真正的问题是以下任何一项是否可以工作以及如何完成:

  • 绕道ReadProcessMemoryOpenProcess,并在呼叫时退出?(尽管我认为这行不通,因为这些函数是由内存编辑器而不是我的游戏调用的(。
  • ReadProcessMemory我自己(游戏(并检查他们正在更改的地址。检查值是否不在正常范围内,然后退出。
  • 有什么建议吗?

我知道这样做是徒劳的,因为知道自己在做什么的作弊者仍然可以绕过这一切。但是我的游戏只有大约 600 名活跃玩家,我相信他们只是有点scriptkiddies。我认为对于像我这样的小游戏来说,这个简单的对策应该足够了。但是,当然,设计将得到纠正。

绕道读取进程内存或打开进程并在调用时退出?

这些不会在您的进程中调用,因此在本地挂接它们不会执行任何操作。 您需要挂钩每个正在运行的进程,不建议这样做。

读取我自己(游戏(上的进程记忆并检查他们正在更改的地址。检查值是否不在正常范围内,然后退出。

你不需要读取进程内存,你就在你自己的进程中。 只需正常检查值即可。

如果您不希望客户端能够操作这些值,则应在服务器上计算这些值,然后只需将此信息复制到客户端并覆盖它们。

您还可以向客户端添加反调试库,以防止大多数人操作您的进程。 这是一个不错的