事情的起因
最近博主沉迷于三角洲行動(dòng)無法自拔,每天都是高強(qiáng)度搜打撤。
而且大部分時(shí)間,都是做開發(fā)做到一半,然后朋友邀請(qǐng)我一起去玩三角洲,但是最近收到兩次插件封號(hào),并且都是在游戲?qū)种羞M(jìn)行的封號(hào)(真的很生氣)打一半給我封號(hào)。
四月份那次是我插著ESP32S3,在開發(fā)微雪的熱成像模塊的時(shí)候給我莫名其妙的封號(hào)。
最近的那次是連著正點(diǎn)原子的STM32H7R7在開發(fā)屏幕的時(shí)候給我封號(hào)了。
有的時(shí)候都分不清《三角洲行動(dòng)》封號(hào)的機(jī)制是什么,我戰(zhàn)績都撈成這樣子了還給我進(jìn)行的封號(hào),每次封號(hào)的理由都是插件封號(hào)。
難不成玩游戲的時(shí)候插著類似STM32這樣子的開發(fā)板都會(huì)被認(rèn)為是外掛的作弊版?到底是什么樣子的檢測邏輯?
DMA是什么
DMA全稱:Direct Memory Access,直接內(nèi)存訪問,它可以在不依靠CPU的情況下直接對(duì)系統(tǒng)內(nèi)存進(jìn)行訪問。
在嵌入式開發(fā)領(lǐng)域中,依靠DMA,微控制器可以高效快速的從外設(shè)將數(shù)據(jù)搬運(yùn)至內(nèi)存,例如DMCI外設(shè),ADC。也可以利用DMA快速將內(nèi)存中的數(shù)據(jù)搬運(yùn)到外設(shè),像DAC,屏幕等外設(shè)。
如果不使用 DMA,CPU 需要逐個(gè)字節(jié)地將數(shù)據(jù)從外設(shè)讀取并寫入內(nèi)存,這會(huì)占用大量的 CPU 資源。而使用 DMA 后,DMA 控制器可以接管數(shù)據(jù)傳輸任務(wù),CPU 就可以同時(shí)進(jìn)行其他運(yùn)算工作,從而實(shí)現(xiàn)并行處理。
DMA在外掛領(lǐng)域的作用
由于DMA可以直接讀取內(nèi)存的特性,因此游戲外掛制作者通過專門的DMA板子連接到電腦的PCIE插槽,繞過CPU讀取內(nèi)存數(shù)據(jù)。直接訪問和讀取游戲電腦的內(nèi)存數(shù)據(jù)??梢愿斓孬@取游戲中的關(guān)鍵信息,如敵人位置、血量、物品分布等。
在獲取到主機(jī)的游戲內(nèi)存數(shù)據(jù)后,DMA外掛將這些數(shù)據(jù)實(shí)時(shí)傳輸?shù)礁睓C(jī),副機(jī)上運(yùn)行作弊軟件,對(duì)數(shù)據(jù)進(jìn)行分析、處理,并生成透視、自瞄、雷達(dá)等作弊效果。之后,通過硬件將操作指令回傳至主機(jī),從而實(shí)現(xiàn)自動(dòng)瞄準(zhǔn)、透視敵人、修改屬性等作弊行為。
由于DMA外掛的硬件設(shè)計(jì)使其無需依賴軟件注入或修改游戲文件,僅通過硬件層面的數(shù)據(jù)流轉(zhuǎn)實(shí)現(xiàn)作弊,且主機(jī)上沒有直接的外掛程序運(yùn)行,沒有可疑的內(nèi)存數(shù)據(jù)讀寫和重疊窗口繪制等傳統(tǒng)外掛的明顯特征,極大地提高了隱蔽性,能夠輕易繞過傳統(tǒng)反作弊系統(tǒng)的檢測。
因此DMA在外掛領(lǐng)域非常猖獗。
插塊板子就是作弊嘛?
不知道《三角洲行動(dòng)》檢測外掛的機(jī)制到底是什么,但是對(duì)于我們嵌入式開發(fā)者來說,一些開發(fā)插件,尤其是像我這樣子開發(fā)到一半突然興致來了打一把游戲的我相信比比皆是。
不過可能游戲開發(fā)者檢測的是接口,對(duì)于嵌入式開發(fā)者來說電腦上可能會(huì)插著奇奇怪怪的設(shè)備,被游戲官方誤認(rèn)為是DMA板子從而進(jìn)行了封號(hào)。
但是游戲打到一半被認(rèn)為是插件封號(hào)真的很難受(我都菜成這樣子了還能說我開掛)。