最近,CF中某些主播“开(下称KG)挂”升上热搜,作为十年老兵,瓜是吃的饱饱的。之后官方下场进行检测,但是没有检测到软件KG行为,而是检测到主播有硬件设备异常情况。关于事件的来龙去脉就不过多赘述了,大家可以去某些社区吃瓜,我们今天只谈技术,不吃瓜。
现在已经是3202年了,软件KG已经是过去式了,因为可以检测到电脑中的数据异常,所以游戏官方对于这种G是一查一个准。现在的高级G都是硬件G,而硬件G中一个最常见的就是FPGA做的DMA G。
原理
使用FPGA进行DMA(Direct Memory Access,直接内存访问)作弊原理:主要是通过FPGA直接访问计算机内存中的数据,可以进行数据修改(血量,金币等),或者将数据导出来到其他设备上显示(对手位置)。那为什么要使用FPGA进行操作呢?
主要原因就是FPGA灵活,这种行业就是灰色产业,不会有专用的ASIC(未来可能有),所以FPGA的优势就体现出来了;二是驱动易改,可以模拟电脑中的网卡、GPU等,这样即使官方查到,最多就是硬件设备异常,不会直接查到KG的证据。
自己做一个?
这种灰色产业,国内肯定不会直接出来卖的,但是出于学习的目的,我们今天看一个项目:
PCILeech FPGA 项目包含用于基于 FPGA 的设备的软件和 HDL 代码(还有硬件),可与PCILeech 直接内存访问 (DMA) 攻击工具包和MemProcFS - 内存处理文件系统一起使用。使用基于 FPGA 的设备具有许多优势:其一是基于 FPGA 的硬件提供对 64 位内存空间的访问,而无需依赖目标系统上运行的内核;其二是基于 FPGA 的设备也更加稳定。基于 FPGA 的设备还可以发送原始 PCIe 事务层数据包 TLP - 允许进行更专业的研究。
支持的设备:
目前该项目支持的硬件(大部分硬件开源):
设备 | 接口 | 传输速度 | PCIe版本 |
---|---|---|---|
Screamer PCIe Squirrel | USB-C | 180 MB/s | PCIe gen2 x1 |
LeetDMA | USB-C | 180 MB/s | PCIe gen2 x1 |
Enigma X1 | USB-C | 200 MB/s | PCIe gen2 x1 |
PCIeScreamerR04 | USB-C | 180 MB/s | PCIe gen2 x4* |
ScreamerM2 | USB3/USB-C | 180 MB/s | PCIe gen2 x4* |
PCIeScreamer | USB3 | 100 MB/s | PCIe gen2 x1 |
AC701/FT601 | USB3 | 150 MB/s | PCIe gen2 x4* |
SP605/FT601 | USB3 | 75 MB/s | PCIe gen1 x1 |
Acorn/FT2232H | USB2 | 25 MB/s | PCIe gen2 x4* |
NeTV2 | UDP/IP | 7 MB/s | PCIe gen2 x4* |
SP605/TCP | TCP/IP | 100kB/s | PCIe gen1 x1 |
*) PCILeech FPGA 只使用 PCIe x1,即使硬件方面有更多 PCIe 通道可用。因为x1就足以提供我们需要的性能。
请从上面的列表中选择最适合需求的 FPGA 硬件。如果性能是关键,目前建议使用 Screamer 系列、Enigma X1 或 AC701。
这个项目是基于上面项目进行延伸的,使用的是NETV2(硬件地址:https://github.com/AlphamaxMedia/netv2-mainboard),获取DMA数据后标记敌人的位置,然后与输入的HDMI数据叠加,最后HDMI输出画面就是游戏画面和标记的敌人画面叠加的画面。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !