游戏客户端的基本保护
Basic Protection of a Game Client
我目前有一个多人游戏,玩家开始使用内存编辑来取消攻击动画,使攻击数据包进入得更快或使攻击比正常情况快得多。
是的,更好的设计将是理想的,但这可能需要一段时间。我想得到一个可以快速完成的临时修复。
想法:
- 检查最后一个攻击数据包之间的时差,忽略所有太快的内容。(对于服务器(
- 使用
EnumWindows
检查窗口类,如果检测到已知的内存编辑器,则停止游戏。 每次进行攻击时都会执行EnumWindows
。(对于客户( - 使用
ReadProcessMemory
读取正在运行的进程并查找已知内存编辑器的符号。
那么真正的问题是以下任何一项是否可以工作以及如何完成:
- 绕道
ReadProcessMemory
或OpenProcess
,并在呼叫时退出?(尽管我认为这行不通,因为这些函数是由内存编辑器而不是我的游戏调用的(。 -
ReadProcessMemory
我自己(游戏(并检查他们正在更改的地址。检查值是否不在正常范围内,然后退出。 - 有什么建议吗?
我知道这样做是徒劳的,因为知道自己在做什么的作弊者仍然可以绕过这一切。但是我的游戏只有大约 600 名活跃玩家,我相信他们只是有点scriptkiddies
。我认为对于像我这样的小游戏来说,这个简单的对策应该足够了。但是,当然,设计将得到纠正。
绕道读取进程内存或打开进程并在调用时退出?
这些不会在您的进程中调用,因此在本地挂接它们不会执行任何操作。 您需要挂钩每个正在运行的进程,不建议这样做。
读取我自己(游戏(上的进程记忆并检查他们正在更改的地址。检查值是否不在正常范围内,然后退出。
你不需要读取进程内存,你就在你自己的进程中。 只需正常检查值即可。
如果您不希望客户端能够操作这些值,则应在服务器上计算这些值,然后只需将此信息复制到客户端并覆盖它们。
您还可以向客户端添加反调试库,以防止大多数人操作您的进程。 这是一个不错的
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 如何将函数集合传递给客户端类,以便将它们当作客户端类本身的成员使用
- 使用调试/崩溃报告将应用程序部署到客户端
- 如何在本地机器上运行c++和javascript客户端代码(hackerbank风格)
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 从服务器传输到客户端的消息不会出现
- OpenSSL TLS服务器-使用客户端证书白名单
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 如何绑定 C++ gRPC 客户端的网络接口
- C++套接字客户端到 Python 服务器未创建连接
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 将相机数据从服务器实时流式传输到客户端
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- GRPC C++ TLS 客户端 grpc::SslCredentials() 方法不返回
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- 如何暂停插孔音频客户端
- 游戏客户端的基本保护