DMA 是什么聊聊游戲的物理外掛
- 來源:電腦報 smarty:if $article.tag?>
- 關(guān)鍵字:內(nèi)存,檢測,機(jī)制 smarty:/if?>
- 發(fā)布時間:2025-04-05 10:49
■ Jeff
硬件外掛,繞開內(nèi)存檢測機(jī)制
首先大家要知道,游戲數(shù)據(jù)都是運行在本地的,比如射擊游戲里所有玩家在每一幀的位置坐標(biāo),都會記錄在每個玩家電腦的內(nèi)存里,你可能會問為什么不放在服務(wù)器里?這是因為多人游戲的數(shù)據(jù)量龐大且更迭速度極快,再加上像《反恐精英2》等熱門游戲動輒幾百上千萬玩家同時在線,如果數(shù)據(jù)都放在服務(wù)器,延遲和服務(wù)器容量的壓力實在是游戲運營商無法承受的重?fù)?dān)。也正因如此,大多數(shù)的游戲外掛都是通過修改本地電腦內(nèi)存數(shù)據(jù)來實現(xiàn)的,比如提取全局玩家的位置坐標(biāo),就實現(xiàn)了透視,再讓鼠標(biāo)自動跟隨該坐標(biāo),也就搞定了“鎖頭”。
但游戲廠商也并不傻,既然軟件外掛是通過訪問內(nèi)存獲取數(shù)據(jù),那我把內(nèi)存數(shù)據(jù)通過加密方式保護(hù)起來不就完了?這也是大多數(shù)網(wǎng)游廠商“內(nèi)核級加密”的原理, 其中CPU 就主要負(fù)責(zé)這個加密的過程。
而DMA 游戲外掛則是一種基于直接內(nèi)存訪問(DirectMemory Access, DMA) 技術(shù)的硬件作弊工具,因為電腦允許GPU、網(wǎng)卡等外部設(shè)備在不通過CPU 干預(yù)的情況下直接讀寫系統(tǒng)內(nèi)存,原本的目的是提高工作效率,不用啥事兒都去請示一下CPU。而DMA 作弊器就利用了這個漏洞,作弊玩家通過將DMA設(shè)備連接到游戲電腦的PCIe 插槽,然后用另一臺作弊電腦通過USB 連接DMA 硬件來讀取游戲電腦內(nèi)存,這個過程就繞過了CPU 加密,可以掃描并修改游戲內(nèi)存數(shù)據(jù),此時將作弊電腦接上另一臺顯示器,就能直接看到作弊效果了。
因為使用DMA 時在游戲電腦上完全看不到任何的作弊痕跡,所以特別適合各類主播,而沒有直播需求的普通玩家可以將作弊效果通過融合器直接覆蓋顯示到主顯示器上,實現(xiàn)直觀的透視、鎖頭等作弊功能。
反制路漫漫,硬件外掛不好防
DMA 這種利用PC 系統(tǒng)底層運行機(jī)制的物理外掛防御難度極高,目前游戲廠商給出的手段都要付出較高的代價。因為DMA 的配置需要在游戲啟動前先啟動,那反外掛程序只要比DMA 更早啟動不就可以監(jiān)測到環(huán)境變化了嗎?所以像《穿越火線》就要求玩家在操作系統(tǒng)啟動階段就加載反作弊程序,以實現(xiàn)全程系統(tǒng)環(huán)境監(jiān)控,以此作為依據(jù)來判斷玩家是否作弊。
這一手段雖然可以提供玩家作弊的依據(jù),但帶來了兩個明顯的問題: 一是影響電腦的性能,這也是很多玩家痛恨反作弊的原因之一。二是游戲廠商不能因為玩家在游戲開始前接入了外設(shè),就一刀切地判斷為作弊,很多被舉報的疑似作弊者都會聲稱自己外接的是聲卡、網(wǎng)卡等合法設(shè)備,所以游戲廠商在這時候也只能用枚舉法這個“笨辦法”來進(jìn)行篩選——通過收集固件特征(如固件哈希值、硬件ID 等),建立數(shù)據(jù)庫進(jìn)行比對,比如騰訊已累計禁用4.5 萬個覆蓋偽裝為網(wǎng)卡、打印機(jī)等設(shè)備的異常固件,但這顯然是個亡羊補(bǔ)牢的辦法,而且新的DMA 芯片已經(jīng)可以支持自定義固件來偽裝成白名單里的產(chǎn)品,所以這個辦法并不能從源頭解決問題。
不僅如此,作弊軟件也在與時俱進(jìn),比如鎖頭就不再是直愣愣地將鼠標(biāo)固定在頭部坐標(biāo),而是模擬玩家的平滑操作,產(chǎn)生了一定的延遲和差異感。再加上資深作弊玩家往往都“演技出眾”,甚至可以通過外掛服務(wù)器實時共享敵人坐標(biāo)信息,一人獲取數(shù)據(jù)全隊透視作弊。所以,DMA 作弊行為的確難以防御,廠商往往也是以動輒10 年封禁,甚至禁止作弊玩家賬號游玩旗下其他游戲等重罰作為威懾手段。
