“不会被封的外挂”,为何使用FPGA作为FPS游戏的“DMA”桥梁

本文讨论了使用FPGA进行直接内存访问(DMA)的作弊方法,解释了FPGA的优势,如灵活性和驱动易改性,以及PCILeechFPGA项目和Csgo-dma-overlay项目的实例。这些项目展示了如何利用硬件作弊并强调了学习价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

“不会被封的外挂”,为何使用FPGA作为fps游戏的“DMA”桥梁

d4e40d4e85366574e37ced54c7434e92.png

最近,CF中某些主播“开(下称KG)挂”升上热搜,作为十年老兵,瓜是吃的饱饱的。之后官方下场进行检测,但是没有检测到软件KG行为,而是检测到主播有硬件设备异常情况。关于事件的来龙去脉就不过多赘述了,大家可以去某些社区吃瓜,我们今天只谈技术,不吃瓜。

5eb045a27a76ba585a305b2c3d7a1258.png

现在已经是3202年了,软件KG已经是过去式了,因为可以检测到电脑中的数据异常,所以游戏官方对于这种G是一查一个准。现在的高级G都是硬件G,而硬件G中一个最常见的就是FPGA做的DMA G。

c78c3ad95ee8ab230b98ff36d2f854e8.png

原理

使用FPGA进行DMA(Direct Memory Access,直接内存访问)作弊原理:主要是通过FPGA直接访问计算机内存中的数据,可以进行数据修改(血量,金币等),或者将数据导出来到其他设备上显示(对手位置)。那为什么要使用FPGA进行操作呢?

主要原因就是FPGA灵活,这种行业就是灰色产业,不会有专用的ASIC(未来可能有),所以FPGA的优势就体现出来了;二是驱动易改,可以模拟电脑中的网卡、GPU等,这样即使官方查到,最多就是硬件设备异常,不会直接查到KG的证据。

3068f33734ea32e540405609af2c2d95.png

自己做一个?

这种灰色产业,国内肯定不会直接出来卖的,但是出于学习的目的,我们今天看一个项目:

https://github.com/ufrisk/pcileech

6aa7df65991f5ec69fc0bc68d659e2b3.png

PCILeech FPGA 项目包含用于基于 FPGA 的设备的软件和 HDL 代码(还有硬件),可与PCILeech 直接内存访问 (DMA) 攻击工具包(https://github.com/ufrisk/pcileech/)和MemProcFS(https://github.com/ufrisk/MemProcFS/) - 内存处理文件系统一起使用。使用基于 FPGA 的设备具有许多优势:其一是基于 FPGA 的硬件提供对 64 位内存空间的访问,而无需依赖目标系统上运行的内核;其二是基于 FPGA 的设备也更加稳定。基于 FPGA 的设备还可以发送原始 PCIe 事务层数据包 TLP - 允许进行更专业的研究。

d6e373676da9366a3e16dc4dd0479586.png

支持的设备:

目前该项目支持的硬件(大部分硬件开源):

设备接口传输速度PCIe版本
Screamer PCIe SquirrelUSB-C180 MB/sPCIe gen2 x1
LeetDMAUSB-C180 MB/sPCIe gen2 x1
Enigma X1USB-C200 MB/sPCIe gen2 x1
PCIeScreamerR04USB-C180 MB/sPCIe gen2 x4*
ScreamerM2USB3/USB-C180 MB/sPCIe gen2 x4*
PCIeScreamerUSB3100 MB/sPCIe gen2 x1
AC701/FT601USB3150 MB/sPCIe gen2 x4*
SP605/FT601USB375 MB/sPCIe gen1 x1
Acorn/FT2232HUSB225 MB/sPCIe gen2 x4*
NeTV2UDP/IP7 MB/sPCIe gen2 x4*
SP605/TCPTCP/IP100kB/sPCIe gen1 x1

*) PCILeech FPGA 只使用 PCIe x1,即使硬件方面有更多 PCIe 通道可用。因为x1就足以提供我们需要的性能。

请从上面的列表中选择最适合需求的 FPGA 硬件。如果性能是关键,目前建议使用 Screamer 系列、Enigma X1 或 AC701。

下图就是 ScreamerM2 和 Screamer PCIe Squirrel、Enigma X1 和 LeetDMA以及 NeTV2、SP605 和 AC701 。

cf1b0dfdaf72af99d7364b5abbcc3d84.png a7338c2e63283b687acb2c8fb03193f2.png 810631980572daa83f23d245f1fcbce2.png

其他项目

https://github.com/c1sc0/csgo-dma-overlay

这个项目是基于上面项目进行延伸的,使用的是NETV2(硬件地址:https://github.com/AlphamaxMedia/netv2-mainboard),获取DMA数据后标记敌人的位置,然后与输入的HDMI数据叠加,最后HDMI输出画面就是游戏画面和标记的敌人画面叠加的画面。

总结

今天的话题比较敏(有点)感,项目都是开源的,非常有助于学习PCIe DMA原理,以及等等...

854f838c856a983e2ab866c34aef1f76.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值