为什么在某些MMO中编辑客户的记忆可以使他们作弊?


19

为什么编辑游戏客户端的内存有效?为什么客户会附带这么多“防黑客”工具?

如果我要设计一个客户端-服务器游戏,那么一切都会在服务器上发生(游戏世界的模拟),而客户端将只是被动的消费者,他们会在角色附近接收世界部分的状态更新,仅发送一些信息,例如击键或移动/操作命令。也许我在这里错过了一些东西,但是通过这种设计,任何将客户端内存中的STR增加200的黑客(如果根本没有这个值的话)都不会产生任何效果。

我能想到的唯一解释是,其中进行内存编辑的游戏允许部分模拟在客户端中运行,然后服务器仅定期同步所有客户端。我可以理解,一旦配置了比赛,针对具有固定数量玩家的实时策略游戏的设计,但是,为什么要使用MMORPG?它是减少服务器负载的策略吗?


2
除了服务器负载外,还存在延迟问题。例如,Minecraft处理所有移动客户端的原因仅在于它是最简单的解决方案(纯粹的客户端移动,客户端预测或缓慢的移动)。(《我的世界》没有任何预测框架,因为它通常是一款节奏缓慢的游戏,因此预测运动非常
耗时

Answers:


21

尽管是理想的方法,但从计算负载和客户端输入确认的等待时间来看,几乎不可能对服务器验证每个输入

因此,在许多MMO 中,通常会有一些在服务器上验证的事情。在某些情况下,这包括某些类别的角色移动,这就是为什么存在隐形传送和速度攻击的原因。客户端保护功能为这些黑客行为提供了额外的障碍,尽管当然有足够的时间可以绕开它们。为了解决这个问题,许多这样的游戏将采用登录和事后验证以及轮换实际保护措施的策略。

还有一个问题是,屏幕上存在其他一些简单的内存抓取骇客,它们可以整理信息并通过客户端将按键和其他输入传回客户端,其速度比人类通常的反应快。或者,他们可以寻找可能传送给客户但尚未必定可见的信息(例如,早期的暗黑破坏神地图骇客经常看到的,靠近但尚未显示在任何地方的生物的位置)。


那将解释对查看游戏客户记忆的兴趣以及防止这种记忆发生的兴趣。在上次玩游戏中我亲眼目睹了心灵传送骇客。
Hatoru Hansou

2
有趣的是,游戏方舟:生存进化Ark:Survival Evolved)说他们已经在服务器上验证了所有内容(直到输入iirc)。不完全是WoW类型的MMO,但它支持70ppl alpha服务器(加上大量的npc dinos和播放器构建的结构)。您当然可以感觉到时滞,但它会越来越好。我认为随着技术的进步,这将变得越来越流行。
slicedtoad

5
每个服务器上的“ 70人” 至少比我支持的MMO少一个数量级(实际上是几个)。还应注意,几乎每个人都说他们在服务器上做所有事情,只是作为不给黑客提供发展黑客服务的一种手段。

@slicedtoad我要提一下。请注意,由于大多数MMO无论如何都使用实例化,因此ARKs方法可以在其中使用。对于大量玩家来说,这样做还不可行。
2015年

10

有保护措施的原因之一是,读取游戏状态可以使机器人知道游戏的状态并采取相应的措施。

例如,在MMO中​​进行研磨:如果“机器人”知道周围有生物,它可以向游戏客户端发送命令以选择生物,将其击中直到其生命为0,然后拾取战利品,冲洗并重复。这样,即使对模拟的所有更改都在服务器端进行/确认,某些玩家还是可能会作弊。可以通过虚假的鼠标单击或按下按键或通过内存写入来发送命令。

这是MMO使用内存保护的原因之一。


好的,即使您不能将自己置于上帝模式下,机器人也有更多的感觉,让一个程序为您做所有事情也是在作弊。但是,为什么我玩的游戏中的“黑客”可以一击就杀死?这不是编辑游戏内存和服务器以某种方式验证这些更改的指示。
Hatoru Hansou 2015年

1
@HatoruHansou是的。而且令人讨厌的部分是,无人驾驶机器人可以自行运行,因此,想象一下,由一位金农雇员监控的10台计算机,一整天在线和每天24小时处于活动状态的一堆计算机……您的MMO毁了。有些人甚至会对其他玩家进行特殊处理(“别留在我的地盘上,这是我的房间”(在那儿。。。。)
Vaillancourt

让机器人数量不受控制地增长,您的游戏可能很快就会倒闭。好的,仅此机器人就足以证明其具有防黑客攻击功能。我将等待一会儿再接受答案。
Hatoru Hansou 2015年

@HatoruHansou肯定:)我不确定我是否有所有保护内存的理由:)
Vaillancourt

6

许多MMO都设计有客户端点击预测。因此,如果客户端受到攻击,它将把结果发送给服务器。在这种情况下,服务器不是真正的权威服务器,因此作弊是可能的。

老实说,如果我正在设计MMO,我将使服务器具有完全的权威性,客户端仅将限定的输入值发送到服务器,然后服务器解析结果。

至于为什么许多MMO尚未做到这一点,我只能想到拥有完全权威的服务器会带来额外的服务器负载和“响应滞后”,因为这只会破坏游戏的感觉和响应能力。


那可以解释内存破解是有效的。您是否有指向无权威服务器设计的文章/论文的链接?
Hatoru Hansou

4
负载不是唯一的问题-响应能力是关键。任何联网的实时游戏都必须采用延迟隐藏技术。为了确保每个人都同意,服务器必须有一种方法来订购发生在每个客户端上的事件-避免出现“我先枪杀你”,“不,我先枪杀你”这样的情况。诸如Counter-Strike之类的游戏的Speedhack依靠通过操纵服务器等感知到的延迟来滥用这种同步(这是大多数CS服务器将延迟高于100-200ms的玩家踢出的原因之一)。
罗安2015年

3
除非您制作严格的回合制游戏,否则这是不可避免的。延迟将永远存在,并且联网游戏中涉及的所有计算机都需要在“公共时间”上达成一致以订购事件。即使使用最好的系统来管理延迟,也始终会出现不一致之处,但是我们已经很好地隐藏了那些不一致之处。问题是,一旦您开始制造这些微小的东西,就更容易让一个细微的漏洞溜走-例如,如果客户假装第二次杀死发生第一次杀死之前,允许客户发布两次杀死同一只怪物的信息。这是很难
罗安2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.