type
status
date
slug
summary
tags
category
icon
password
在知乎看到Felina老师的一篇回答,要点如下:
- 当前FPS比较难以处理的外挂,一个是DMA外挂,一个是AI外挂(主要计算机视觉CV模型)(其余外挂也有,但仍属于常规外挂。)这两个的共同点在于:不读取游戏运行本机的CPU,绕过CPU的常规数据通道。
- DMA外挂是利用特殊的硬软件工具来读取和修改游戏内存数据,允许硬件设备直接访问系统内存,绕过CPU数据传输来读取和修改游戏内存数据。DMA (Direct Memory Aceess,直接内存访问)是计算机体系结构中一种允许外部硬件直接访问系统内存的机制,绕过CPU的常规数据通道。DMA外挂正是利用这一机制,将外挂操作嵌入到外部硬件中,实现对游戏内存的实时读取和修改。
- AI外挂是用户所见即所得,利用视频线把屏幕视频信号分出去来做识别、解析和传输。自然也绕过了CPU和内存的限制。例如,将YOLO之类的CV模型训练来检测FPS中的人体骨骼,实现自动描述,也不稀奇了,AI外挂现在早就盛行。只需要利用视频线把屏幕视频信号分出去,基于硬件分出去后,用副机的AI模型做CV检测,然后将指令传回主机做锁头操作即可(利用CV模型的缺点在于屏幕看到什么,你就会看到什么,无法透视,但自瞄和爆头是不在话下的,这已经可以在FPS游戏里无敌了。)
DMA搞出来,原本是希望能让某些硬件子系统直接访问系统内存,无需CPU介入,这样可以解放CPU算力,减轻负担,把一部分任务分出去,让一部分CPU先闲下来。
不过,DMA反倒被外挂制作者所利用,他们基于DMA设备(如PCIe卡)来直接读取或修改目标系统的内存,绕过基于软件层面的传统反作弊检测。例如目前可以实现把DMA设备直接插到游戏主机的PCIe插槽上,来直接读取或修改目标系统的内存数据,完全硬件层面的操作,很难检测和阻止。
接下来,可以通过DMA链接副机,分析内存信息,来实现透视、自瞄和锁头等等。处理完内存信息后,可以通过视频总线将画面传输到游戏主机上,来实现透视(同时可以分层,方便主播直播,让观众只看到游戏画面,看不到外挂框);也可以直接看副机屏幕来操作;另外你甚至可以连接鼠标盒子,直接让副机传输鼠标指令(例如移动到敌人头部位置,并点射开枪),你只需要坐在椅子上,看外挂帮你打游戏即可。
这东西,完全是另一台主机做的,和本机没关系,实难检测,仅限于本机的软件层面的检测几乎无法做到识别外挂,或者说能侥幸识别也可以轻易绕过,可以说,目前第一人称FPS游戏厂商对其检测几乎无法做到。
外接设备(如FPGA开发板、改装主板卡)通过PCIe、Thunderbolt、USB等方式连接到玩家电脑。然后——化身观察者,旁观主机内存,在不经由CPU的情况下直接读写主内存,不仅不需经过CPU处理,也不受操作系统内核监控。
基于DMA(Direct Memory Access)机制本身,「合理合法」地绕过了操作系统与CPU权限控制,通过直接访问内存硬件。甚至后续的处理分析都不在本机,通过DMA总线监控游戏运行时的内存数据后,数据被实时采集并传送到搭载外挂模块的另一个机器上进行分析。等分析出敌人位置等关键信息后,再反馈给游戏主机电脑(显现出来透视视角),或者连接鼠标盒子自动做操作。
以上种种,皆完全绕过了CPU和操作系统,因此传统的系统级反作弊方案难以检测。可以说,常规的反外挂技术,几乎对DMA外挂完全失效,极大提升了检测、分析和取证难度。反作弊引擎(如TenProtect, BattlEye, Easy Anti-Cheat 等)实难检测其活动。
我上文提到的这篇文章也介绍自己破案的大概流程::
首先是「监测到异常游戏行为,结合热心玩家的举报线索,锁定了一批使用DMA外挂的账号」
然后是「经技术溯源,安全团队发现这些账号均关联同类DMA外挂作弊行为,确认存在团伙作案可能」
最后是「经过安全团队缜密的调查分析,我们逐步掌握了该团伙的相关线索,随即向警方报案,并成立专项工作组配合侦查」
可见,完全的技术手段其实无法准确分析、识别和检测这类攻击,仅是一些异常游戏行为(可能是调高参数,游戏操作表现太过夸张了),不仅仅要依靠检测,更需要热心玩家的举报,还得做事后详尽的离线技术溯源,才能基本确定。
因此,就目前来看,FSP射击游戏的外挂泛滥很难终结,可以说攻守之势异也,当下要进入外挂泛滥的天堂时代了。目前仅仅是一个DMA团队落网,真正逍遥法外,没被检测识别到的DMA外挂制作团伙,以及DMA外挂使用者,千千万万,实难计数。只能说,道高一尺,魔高一丈,长路漫漫,FPS反外挂还有很长的路要走。
Relate Posts