以彼之道,還施彼身 使用機器學習來揪出作弊的玩家

2021-09-25 11:32:36 字數 2418 閱讀 1343

絕地求生·大逃亡是現在非常火的乙個遊戲,當然,外掛程式也非常猖獗

與其他對抗類遊戲不同的是,射擊遊戲的主要較量點並不在於團隊策略或是個人戰術(至少對於業餘玩家如此),而在於個人的操作水平高低。乙個大神可以單手把其餘玩家虐出心理陰影,而對於天賦一般的普通玩家而言,想短時間提公升射擊遊戲水平就是天方夜譚,那麼如何才能體驗虐人的快感呢?很簡單,買一套作弊工具就好了。

守望先鋒中的自動瞄準作弊工具

作弊工具是如此的強大,它不僅能幫你在遊戲中實現自動瞄準、報告敵方位置等功能,甚至在某些遊戲中還能賦予玩家超能力,讓你上天入地、刀槍不侵,這對於很多玩家來說的確是莫大的**——當然,對於其他玩家而言就是極度地不公平。因此,越來越多的玩家會去嘗試使用作弊工具來打遊戲,久而久之,遊戲中的正常玩家就會越來越少,整個遊戲生態也會逐漸毀滅。

還記得小時候一起開黑的cs嗎?作弊問題幾乎毀了這個遊戲

valve公司推出的vac系統

這種辦法和我們常見的防毒軟體有些類似,它們共同的乙個弊端就是容易被軟體所欺瞞,同時對於新生的軟體工具沒有任何抵抗力——由於其具有這種不健全以及滯後性的特徵,我們把這種防禦稱之為被動防禦。當然,其他的遊戲公司所採取的反作弊方式可能更老套,一些遊戲商會引導玩家進行舉報,然後對遊戲錄影進行篩查,最後在給出審查結果以及決定是否懲罰相關玩家——這種做法無疑效率緩慢,但是為了遊戲生態,遊戲商不得不花費大量人力物力進行此類工作。

cs:go目前是全世界最具影響力的競技遊戲之一

另一方面,得益於計算機技術與程式演算法的發展,作弊工具的能力和偽裝能力也越來越強。在以前的遊戲中,作弊工具的效果都會非常誇張以至於瞬間就能被其他玩家發現,而現在,優秀的作弊工具會表現得更像乙個職業選手,除非是非常有經驗的玩家或者是程式分析師,否則一般玩家很難分辨出乙個表現優異的角色操控者是人還是演算法。

機器學習和遊戲有著千絲萬縷的聯絡

這在某種程度上是一種以彼之道,還施彼身的做法——遊戲商同樣採用計算機演算法,來對付那些演算法操控的遊戲角色。那麼,這種做法真的可以奏效嗎?機器學習就能解決這個以往只有靠人力才能完成的工作嗎?答案是肯定的,valve對此信心滿滿,並已經在旗下遊戲cs:go中嘗試使用這種反作弊手段。

這是一種全新的自動性人工智慧系統,這個系統與遊戲本身緊密關聯。系統本身會採集遊戲中的一些資料,然後通過資料分析鑑別出產生這些資料的操作是否來自於乙個真實的人——這個過程有點類似於我們常用的網頁驗證碼技術,而且毫不意外的是,目前最先進的驗證碼技術——google的recaptcha,就是充分利用了機器學習技術來實現高效率和即時性。

google的recaptcha人機驗證系統

與傳統的機器學習方法類似,這個反作弊系統同樣需要使用訓練資料來進行模型訓練——這個系統的本質其實就是乙個二元分類器,因此在運作上與傳統的機器學習模型並無明顯不同。遊戲中的資料是繁雜海量的,因此使用傳統方法找出關鍵資料是無法想象的。而使用機器學習方法,數學模型就能自動通過海量的訓練資料找到作弊操作和普通操作與各種遊戲資料之間的聯絡,並將這種聯絡轉化為關於各種特徵的權重,並使用這些權重來判斷未來的操作屬於哪一類。

但是,僅僅這樣做是不夠的。正如我們之前講過的,現在的遊戲作弊工具和職業玩家非常難以區分,而如果演算法錯誤地將乙個技術高超的職業玩家識別為作弊玩家,那麼後果將會相當嚴重。為了盡可能杜絕這一現象發生,我們需要對演算法進行額外的調整。

cs:go的一種可用的機器學習流程圖

valve給出的辦法是在識別過程中增加一步人類鑑別過程——這個系統被稱為overwatch系統(很有意思有木有)。當演算法認為乙個操作有可能是作弊者的時候,會由專業人士來再次進行一次判別(見上圖),來確定這個玩家是不是無辜躺槍的。然後,人類的最終判別結果會被傳回模型本身用於完善,因此,這個模型會隨著測試次數的增多而不斷得到提公升,最終達到乙個令人滿意的準確率——也就是不再需要overwatch系統作為輔助。

有些作弊工具比如全地圖掛就很難通過錄影去察覺——因為有些玩家會真的擁有這種大局意識

機器學習支援下的反作弊程式還會具有各種各樣的優勢,首先,由於機器學習方法下的反作弊程式可以實現一種「主動打擊」,因此傳統作弊軟體的一些偽裝策略會完全失效;而另外,由於模型本身在不斷成長,模型對於各種資料的權重判別也在不斷變化,因此對於作弊演算法而言,想要找到某些漏洞進行嘗試性攻擊會是非常困難的。

當然,這一切的研究工作還處於比較早期的階段,valve為了實現早期的訓練過程,使用了數百台裝置、上百萬個遊戲錄影用於分析。而演算法的早期成長速度非常緩慢,遊戲中高維度、高密集度、高混亂度的資料給演算法優化帶來了非常多的問題。解決這些問題這不僅需要高質量演算法的支撐,也需要這個社群的玩家一起群策群力。

作為研究者,valve同時提到,傳統的通過識別軟體特徵的反作弊程式只會讓事態變的越嚴重——因為如果不具備主動識別效能,反作弊程式將會在這種「軍備競賽」中永遠落後於作弊工具,黑客們總會找到各種各樣的偽裝和優化策略來對抗遊戲商,而被動地防禦帶來的資源消耗是不可估量的。

遊戲一直是機器學習演算法乙個很好的練武場,我們也希望機器學習演算法的成長和進步能夠為我們帶來乙個更美好、更神奇的遊戲世界。作為普通玩家,在了解這些前沿科技的同時,最重要的還是從自身做起,不圖不掛,素質遊戲,自覺維護和諧、公平的遊戲環境。

白話寬位元組注入 以彼之道,還施彼身

各位看官,在正式了解寬位元組注入前,我先介紹幾個概念 王姑娘 熟悉各種web攻擊原理。慕容姑娘 剛學會sql注入,最近一直被寬位元組注入所困擾。1 統一字元編碼,使用mysql set charset 指定字符集。2 使用mysql real escape string進行轉義,與addslashe...