騰訊推出反作弊預啓動模式,針對 DMA 外挂。
外挂與反外挂,無疑是一個貫穿了整個遊戲行業曆史的 " 主線劇情 "。即便不提玩家喜聞樂見的金山遊俠、風靈月影,遊戲廠商聞之色變的外挂則主要集中在網絡遊戲領域,從古早的《石器時代》、《冒險島》,到《絕地求生》、《CS2》,這類破壞遊戲公平性、毀滅遊戲環境的外挂,在過去二十多年間也成爲了大量遊戲的 " 掘墓人 "。
爲了延長遊戲的生命力,廠商在打擊外挂上可謂是八仙過海各顯神通。比如騰訊遊戲就在日前宣布推出新的反作弊措施——反作弊預啓動模式,《穿越火線》和《無畏契約》将成爲首批支持該功能的遊戲。根據騰訊遊戲方面的說法,反作弊預啓動模式旨在爲玩家提供一個更安全、可靠的遊戲環境,大幅降低作弊或賬号安全風險。
不同于以往的騰訊遊戲安全 ( Anti-Cheat Expert)方案,反作弊預啓動模式的主要變化集中在對玩家的保護從遊戲啓動擴展到了整個操作系統的運行周期。據悉,反作弊預啓動模式會跟随 Windows 操作系統開機啓動,并且是在操作系統啓動階段就開始加載,而不是與遊戲一同啓動。
爲什麽騰訊遊戲要推出反作弊預啓動模式?當然是因爲現有的反外挂、反作弊手段已經落後。傳統的遊戲外挂是以軟件形式爲主,它們利用了遊戲廠商爲降低服務器一端的計算壓力,将大量計算放在玩家側客戶端的特點,滲透到客戶端與服務器端的數據通訊中。
針對網絡數據鏈路上的不同節點,就誕生了修改客戶端内存信息的内存挂,以及重發、篡改同步信息的封包挂。根據外挂的實現原理,反調試、ROOT 檢測、反 HOOK、虛拟化、完整性驗證、反靜态 / 動态編碼操作也成爲了目前反外挂工具的基本功能。
以大家熟悉的騰訊 TenProtect 爲例,它就采取内核驅動接管系統級别的權限,實現了禁止一切調試器、掃描硬盤、隐藏遊戲進程以拒絕第三方訪問等效果。如果抛開 TenProtect 在驅動層直接 hack 系統導緻卡死、崩潰、報錯等一系列不穩定現象,單純在反作弊技術層面,它确實可以說是名列前茅。
遺憾的是如今外挂軟件也有了天敵,硬件級别的外挂開始出現。最近幾年,一種名爲 DMA 的外挂席卷了 FPS 網遊,從騰訊的《CF》、《無畏契約》到 valve 的《CS2》,再到 EA 的《APEX》和動視暴雪的《使命召喚》都遭遇了毒手,而 BettlEye、VAC,以及 TenProtect 都對此都束手無策。
DMA 外挂利用 Direct memory access(直接訪問内存技術)直接讀取和修改玩家的内存數據,然後将數據導出到其他設備上顯示。DMA 的特點是它不需要 CPU 的幹預、而直接服務于外設,就導緻了有黑産通過 FPGA(現場可編程門陣列)開發闆刷仿真固件,讓反作弊軟件認爲搭載了外挂程序的硬件是正常的聲卡、網卡、硬盤。
DMA 外挂的強大之處,就在于反作弊軟件隻能覆蓋一台開啓了該功能的設備,對于運行外挂程序的 FPGA 開發闆無法實現 " 長臂管轄 ",因爲運行外挂的 FPGA 開發闆通常都是插在另一台電腦上的。開挂者往往是一台電腦正常遊戲,另一台電腦則用于顯示對局中其他玩家的位置信息。
但遊戲是運行在操作系統中,自然無法通過操作系統暴露的接口驗證操作系統到底是什麽,而操作系統運行在硬件之上,也無法通過硬件暴露的接口驗證硬件到底是什麽,這就是 DMA 外挂的棘手之處。所以 DMA 外挂完全有條件僞裝到無法被任何技術手段檢測到,因爲運行遊戲的這台電腦确實沒有開外挂。
然而 DMA 外挂也有一個命門,那就是它畢竟不是 Windows 操作系統的一部分,所以也做不到開機自動配置運行環境。簡單來說,DMA 外挂需要在遊戲開啓前完成配置,而騰訊此次推出的反作弊預啓動模式,就是針對 DMA 外挂這唯一的一處缺陷。當反外挂程序與 Windows 一起啓動,也就意味着電腦的桌面剛顯示出來,程序就已經在後台運行了。
這時候如果開挂玩家啓動 DMA 外挂,自然就會被抓住馬腳。不過反作弊預啓動模式并不是沒有代價,即使騰訊的遊戲并沒有開啓,不間斷地掃描硬盤也會帶來不可忽視的性能開銷,所以電腦變卡幾乎是必然。至于說這一點缺陷是不是必要之惡,就得看玩家們是怎麽想的了。
本文來自微信公衆号 " 三易生活 "(ID:IT-3eLife),作者:三易菌。