技術乾貨 | 反外掛技術的革新:如何有效應對 FPS 外掛的威脅
FPS(第一人稱射擊)遊戲是一種高度競爭和反應速度極高的遊戲型別,已經成為當今遊戲市場主流的遊戲品類之一。與此同時外掛問題已經成為 FPS 遊戲產業的一大難題,遊戲開發者和平臺運營商必須採取措施來保護遊戲的公平性,維護遊戲的品牌形象。本文將從 FPS 遊戲外掛現狀和氾濫原因、傳統外掛檢測方法及侷限性、應用落地等多個方面來探討 FPS 遊戲外掛問題。
一、FPS 遊戲外掛現狀和氾濫原因
線上多人的 FPS 遊戲是實時性要求最高的遊戲型別之一。在這種遊戲中,玩家的一瞬間判斷和反應能力會直接決定勝負。然而,網路延遲和實時載入的問題經常會導致遊戲卡頓,這會極大地影響玩家的遊戲體驗。為了解決這個問題,FPS 遊戲通常會採用預載入技術。預載入技術是指在敵人離玩家較近的時候,已經把敵人的資料從伺服器下載到本地,並載入到遊戲記憶體裡。這樣,在玩家和敵人真正碰面時,遊戲客戶端就無需再做大量的工作,從而避免實時載入受網路或裝置效能影響導致卡頓。
外掛製作者利用 FPS 遊戲中資源預載入在客戶端本地的特性,透過修改遊戲資料或注入外部程式來獲得非法優勢,如自瞄和透視,可以讓使用者輕鬆擊殺對手,從而獲得不公平的競爭優勢。這些外掛功能提供了快速且準確的瞄準能力,讓使用者能夠在遊戲中享受虐殺快感。外掛的高收益是吸引大量玩家使用外掛的原因之一。
外掛製作者透過一些隱蔽的外掛入侵手段,以避免被反作弊系統檢測到。例如使用虛擬機器、記憶體注入、HOOK 等技術,使外掛難以被檢測到。這是 FPS 遊戲外掛屢禁不止的根本原因之一。
「外掛製作者->外掛銷售代理->網路渠道->外掛使用者」的鏈條式傳播和易於使用也是 FPS 遊戲外掛氾濫的一個重要原因。外掛可以在模擬器執行手遊的同時使用,甚至傳播帶有外掛功能的破解版遊戲,這些方式使得外掛的使用者和影響範圍變得更加廣泛。
從網易易盾對外發布的內容來看,在 FPS 射擊類遊戲中外掛型別使用最多的是透視掛,佔比達到 58.33%;自瞄雖然只佔了 8.33%,卻是最影響遊戲體驗的外掛。
透視
FPS 遊戲為了保證低延遲的效果而將大量資源預載入在玩家客戶端記憶體中,使得外掛製作者可以從記憶體中獲取到各種資源的資訊,並將其視覺化渲染出來,這就是透視外掛的基本原理。根據透視形態的不同,可以劃分為方框&血條類、皮膚類、自瞄圈、射線類、骨骼類、染色類等等。相較於其他型別的 FPS 外掛,透視外掛更加難以感知,只要使用者刻意偽裝,即使人工稽核也很難發現。
自瞄
如下圖,在 FPS 類遊戲中自瞄外掛最多的型別是模擬滑鼠行為,佔比達到 81.83%。外掛在獲取敵人座標後,傳送模型滑鼠訊號,使遊戲程式執行後直接將準心移動到目標位置,在驅動層面很難檢測到這樣的外掛。但毋庸置疑,在正常玩家與自瞄玩家的行為上,會有很大區別,即行為資料層面才是解決外掛問題的關鍵。
本文將以透視、自瞄外掛檢測為重點進行闡述。此類外掛因為其隱蔽性高、檢測難度大,缺乏實錘證據等原因使得其成為了業界的一大難題。從玩家行為資料的角度直接入手,深入到透視和自瞄作弊行為的本質進行檢測。
二、傳統解決方案及侷限性
當前主流的檢測外掛方法包括簽名檢測、特徵檢測、記憶體掃描等,舉報稽核查驗以人工進行的方式為主。
簽名檢測可以快速辨識已知外掛程式,但無法有效應對新型或修改後的外掛。
特徵檢測監測遊戲行為和操作,雖然能識別異常模式,但由於遊戲的多樣性和玩家行為的複雜性,依靠單一的閾值等數值進行決斷,很容易產生誤報,並且會有一定的遺漏。
記憶體掃描雖然能夠透過檢測記憶體中的外掛程式碼或資料結構來發現外掛,但外掛製作者可以採取一些對抗措施來規避此方法,例如使用加密演算法、隨機化記憶體地址等手段。因此,記憶體掃描並非完全可靠的外掛檢測方法,需要結合其他檢測手段來提高檢測的準確性和可靠性。
人工舉報稽核可及時發現外掛行為,但由於舉報者的主觀性和遊戲玩法的複雜性,可能存在誤報和惡意舉報的情況。
傳統解決方案的優點是效果明顯,但缺陷在於對抗程度高且存在嚴重的滯後性,外掛更新頻繁且善於隱藏程式,傳統方案很容易失效,迭代升級後才能掃描到外掛程式,如此一來便容易陷入到無止境的對抗中,消耗大量的人力和物力,最終失效。因此,對於遊戲開發者來說,需要根據具體情況選擇合適的方法進行檢測,並不斷提高反作弊系統的能力,開發更加高效、準確的檢測手段,從而保證遊戲的公正性和平衡性。
三、網易智企遊戲 AI 反作弊解決方案
提出使用在遊戲中廣泛存在的回放日誌資料,重構出玩家當局的表現。在回放日誌資料中,構建了玩家的時序行為資料,並基於該時序行為資料,分別搭建了透視和自瞄外掛檢測系統,該方法和系統可廣泛應用於各種線上遊戲平臺,提高遊戲平臺的公平性和客戶滿意度。
玩家時序行為資料包括每一個時刻的位置座標、攝像機/槍口朝向、武器型別、是否擊殺、是否命中等資訊,在此基礎之上進行二次設計加工,構造每個時刻的準心移動的速度、加速度和目標相對移動軌跡、相對偏向角、目標是否在視野內等特徵,再往上一層,構造以“開火、命中、擊殺、回合、對局、玩家歷史對局”漸進地多層次維度的特徵。
透視和自瞄是 FPS 遊戲裡不同型別的作弊問題,從同一個時序行為資料中提取多個特徵,其中發現部分特徵非常明顯且富於表達,呈現出正常玩家與作弊玩家的巨大差異性。將多個特徵構成的序列喂入模型進行預訓練,得到表徵之後再進行分類監督學習,最後對玩家是否作弊進行預測。該方案採用自監督時序模型對玩家行為資料進行建模,過程分為三個階段:
在第一階段,透過對歷史玩家對局資料進行對比構造樣本,將上述資訊輸入到模型中進行學習,該模型能夠自主學習遊戲玩家的行為模式和資料特徵。
在第二階段,使用少量有標籤的歷史玩家資料進行監督學習,從而更好的學習到資料的潛在表示。
在第三階段,模型對遊戲玩家每場行為資料進行處理,以檢測其是否存在透視或自瞄外掛行為。
基於時序行為資料的透視外掛檢測方案
作弊玩家使用透視外掛,獲取了正常玩家不具備的視野和整體宏觀資訊優勢,也正因為如此,他們的行為表現的與正常玩家有所不同,例如能在視野資訊未知的情況下進行走位和瞄準,從而獲取對槍時的優勢,在目標掩體後暴露瞬間會有超出正常水平的瞄準擊殺表現,落在資料上有諸多特徵維度可以進行區分,本文選取 2 個最為明顯的維度進行展示:關鍵時刻目標相對偏向角的變化,以及綜合多個擊殺/多回合的瞄準擊殺表現。
1. 關鍵時刻目標相對偏向角的變化
作弊玩家使用透視後,一般會有很多有意識或無意識的“預瞄準”現象,使得目標相對偏向角的變化曲線與正常玩家不同。
可以看到,在關鍵時刻例如擊殺前目標在牆後移動的時候,透視作弊玩家的目標相對偏向角比正常玩家總體偏低,且變化較為穩定。
2. 綜合多個擊殺、多回合的瞄準擊殺表現
作弊玩家在目標遮擋到“視野暴露”的瞬間,能夠在很短的時間內完成瞄準與擊殺,與普通玩家的正常反應時間呈現出較大的差距,該差距在綜合多次擊殺、多回合表現的情況下尤為明顯。
如上圖所示,儘管作弊玩家偶爾會“演”,正常玩家也會有偶爾“超神”表現,但是放大到單回合多次擊殺,以及多回合、多場次的瞄準擊殺表現來看,透視作弊玩家的平均反應時間(命中時間差)要比正常玩家低,且穩定,而平均擊殺率(對槍 KD)則比正常高。
基於時序行為資料的自瞄外掛檢測方案
分析發現,使用自瞄外掛的作弊玩家在準星移動速度、加速度、準星落點等多維度特徵上與正常玩家表現有明顯差異。這是因為自瞄外掛能夠快速鎖定敵人,使得玩家的瞄準更加精準和迅速,而正常玩家則需要花費更多的時間和精力進行瞄準。具體來說,自瞄外掛使用者的準星移動速度和加速度更快,準星在敵人球面的落點更加集中。這些特徵的顯著差異導致了自瞄外掛使用者的表現與正常玩家不同。
1. 準心移動速度與其加速
透過下圖,藍色曲線為準心移動速度紅色曲線為其加速度,紅色座標點為玩家開槍時刻,自瞄程式通常會使準心的移動速度和加速度變得非常平滑,因為它們會獲取目標的位置並自動調整準心的移動速度和加速度。左圖為自瞄玩家,右圖為正常玩家,相比之下,正常玩家的準心移動速度和加速度可能更加雜亂和不規則。可以看出自瞄玩家在開槍後依然可以保持較小的速度與加速度變化(絲滑壓槍效果)。
2. 準心在敵人球面的落點
因為自瞄提前獲取了玩家的某個部位座標,再模擬滑鼠訊號傳送訊號,以下是準心在敵人球面的落點圖,左圖為自瞄玩家,右圖為正常玩家,可以看到準心落在敵人所在球面時,自瞄玩家的準心軌跡會更加平滑,不會出現正常玩家那樣準心的大規模角度變化。
時序模型網路架構
如上,將透過業務經驗、專家經驗構造的透視和自瞄的時序特徵進行提取之後,結合原始特徵,按照“命中、擊殺”的時間順序組合形成序列,喂入到自監督時序模型進行預訓練,再經過 LSTM 序列分類網路進行監督學習。
總結與未來工作展望
透過對 FPS 遊戲主流外掛以及傳統解決方案的分析,不難看出這是矛與盾對決的巔峰之戰,利用人工智慧等先進技術才能夠更準確地檢測外掛行為。
在面對複雜的外掛形勢,網易智企遊戲 AI 經過多年的技術沉澱積累,以足夠多的遊戲大資料做基礎支援,打磨出完善的 FPS 遊戲反作弊資料解決方案。
方案僅透過使用在遊戲中廣泛存在的回放日誌資料,重構出玩家當局的表現,構建玩家的時序行為資料,並基於該時序行為資料,分別搭建透視和自瞄外掛檢測系統。該方法和系統可廣泛應用於各種線上遊戲平臺,提高遊戲平臺的公平性和客戶滿意度。
“未來,遊戲開發者和平臺運營商需要不斷更新和完善反外掛系統。在反外掛技術方面,需要繼續研究和開發更加高效、準確的演算法和模型,以應對不斷變化的外掛形式和攻擊手段。
這是矛與盾對決的巔峰之戰,利用AI等先進技術升級反作弊系統,才能夠更有力打擊外掛行為。
本文資料均來自網易智企旗下網易易盾對外發布的相關報告”
來源:網易智企技術+
相關文章
- 遊戲反外掛技術揭祕遊戲
- 剖析外掛技術 (轉)
- 外掛化技術:宿主訪問外掛資源
- 外掛輔助技術研究教程
- 跨瀏覽器外掛技術瀏覽器
- framework外掛化技術-類載入Framework
- 外掛製作--------過NP技術漸漸
- Android外掛化技術之旅 1 開篇 - 實現啟動外掛與呼叫外掛中的Activity和ServiceAndroid
- 技術乾貨|威脅情報如何在SOC場景中發揮最大價值
- 解密|一文帶你看懂外掛技術解密
- 乾貨|神器 谷歌Chrome外掛大全谷歌Chrome
- 【乾貨】常用maven外掛總結Maven
- 議題回顧 | 新威脅對策:TSCM 技術反竊密
- 外掛如何呼叫本外掛的View?View
- 技術乾貨收集
- framework外掛化技術-資源載入(免安裝)Framework
- 技術分享 | 一款功能全面的 MySQL Shell 外掛MySql
- 學習外掛編寫開發所必備技術
- 如何給Flutter寫一個高德地圖定位外掛 | 掘金技術徵文Flutter地圖
- 手遊防破解防外掛技術方案(一)客戶端篇客戶端
- 關於系統對外介面應該採用的技術?
- 乾貨 | 知識圖譜的技術與應用
- vim外掛的安裝方式 -- vim註釋外掛和doxygen函式註釋生成外掛-ctrlp外掛-tabular等號對齊 外掛...函式
- [乾貨]谷歌外掛跨域你可以瞭解下谷歌跨域
- 外來鍵技術
- 【同行說技術】教你玩轉iOS的5篇技術乾貨iOS
- 技術乾貨 | WebRTC 技術解析之 Android VDMWebAndroid
- centos安裝Python外掛後找不到對應的外掛ModuleNotFoundError: No module named*CentOSPythonError
- 您的客戶是一個技術威脅嗎?
- 阿里技術精華乾貨整理阿里
- 知物由學 | Windows反外掛的資料對抗Windows
- 使用QTP的.NET外掛擴充套件技術測試ComponentOne的ToolBar控制元件QT套件控制元件
- fastadmin的【外掛管理】外掛使用教程AST
- 外掛化知識梳理(1) Small 框架之如何引入應用外掛框架
- AI時代的移動技術革新AI
- Android外掛化系列三:技術流派和四大元件支援Android元件
- HtmlWebpackPlugin外掛和HtmlWebpackInlineSourcePlugin外掛的使用HTMLWebPlugininline
- 技術乾貨|品高雲的SDN實踐