最近,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輸出畫面就是游戲畫面和標記的敵人畫面疊加的畫面。
審核編輯:劉清
-
FPGA
+關注
關注
1630文章
21781瀏覽量
604936 -
FPS
+關注
關注
0文章
35瀏覽量
12022 -
dma
+關注
關注
3文章
566瀏覽量
100796
原文標題:“不會被封的外掛”,為何使用FPGA作為FPS游戲的“DMA”橋梁
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論