首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保护游戏免受内存扫描器的攻击(如作弊引擎)

保护游戏免受内存扫描器的攻击(如作弊引擎)
EN

Stack Overflow用户
提问于 2013-03-14 23:02:33
回答 5查看 5.6K关注 0票数 6

我正在制作一个C++11游戏,分数会被发送到服务器。我将分数存储为一个简单的浮点数,这样使用Cheat Engine等软件的人就可以在将分数发送到服务器之前轻松地更改分数的值。

我如何保护我的游戏免受这种攻击?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-14 23:08:36

您可以选择许多选项,但最好不要接受来自客户端的任何重要值。让服务器执行所有计算,然后将值发送到客户端。

票数 8
EN

Stack Overflow用户

发布于 2013-03-14 23:10:51

如果您必须首先在客户端执行任何操作,请加密您关心的任何数据(如果可能,则加密所有数据)。

让服务器计算任何重要的东西可能会更好。例如,在Call of Duty中,你希望服务器决定谁被射杀,这样单个玩家的计算机/延迟等就不会涉及到。

如果您正在进行本地PC游戏,并且只想在游戏结束时上传分数,则服务器计算不是一个选项。在这种情况下,您必须首先坚持加密和混淆重要的值。你能做的只有这么多;如果它是100%客户端计算的,那么它可能永远不会是万无一失的。

票数 3
EN

Stack Overflow用户

发布于 2013-03-14 23:11:54

实际上,您无法确保该值不会被篡改。你可以做的就是向服务器发送足够的信息,让它可以确定“这是可能的”--例如,如果你的游戏是“吃豆人”风格的游戏,你也可以提供Pac-Man吃的所有“斑点”,或者每一关的数量和完成每一关所需的时间,等等。作弊的人可以复制所有需要的额外数据并不是不可能的,但是如果你发送更多的数据,这就会变得更加困难。

但是您的软件中随时可用的任何数据都可能被“调试器”类型的应用程序修改。你对此无能为力。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15412796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档