無盡之戰(zhàn)?漫談FPS游戲反作弊系統(tǒng)

前言
杜絕?別開玩笑了,什么都有掛的
——一名普通的FPS玩家
眾所周知,F(xiàn)PS游戲自從誕生以來,就有無數(shù)人為之瘋狂,但是,外掛也跟著讓無數(shù)玩家和開發(fā)者們?yōu)橹疅?,今天我就來談一談FPS中那些我接觸過反作弊系統(tǒng)。
PunkBuster“朋克克星”
及其頻繁的客戶端與服務(wù)器交互使其用戶友好性極低

Even Balance旗下的PunkBuster“朋克克星”(以下簡稱PB),其開發(fā)者也是個(gè)玩家,這老哥有一天被外掛氣的半死,然后砸錢成立的Even Balance公司并開發(fā)出了PB反作弊系統(tǒng),PunkBuster的第一個(gè)測試版本發(fā)布于2000年9月21日,應(yīng)用在第一人稱射擊游戲半條命上,但第一個(gè)正式整合并采用PB反作弊系統(tǒng)的游戲是id Software的重返德軍總部。
PB幾乎把戰(zhàn)地1942至戰(zhàn)地:硬仗幾乎整個(gè)戰(zhàn)地系列的官方反作弊機(jī)制承包了下來,而戰(zhàn)地的“老對頭”使命召喚系列也是從使命召喚1一直用到5,育碧的湯姆克蘭西的彩虹六號3以及維加斯1&2包括幽靈行動(dòng):魅影,當(dāng)年P(guān)B的受歡迎程度可見一斑。
包含為PnkBstrA、PnkBstrB兩個(gè)服務(wù),三個(gè)文件:PnkBstrA.exe(C:\WINDOWS\system32)、PnkBstrB.exe(C:\WINDOWS\system32)、PnkBstrK.sys(C:\WINDOWS\system32\drivers),同時(shí)這三個(gè)文件也存在于游戲目錄下的PB文件夾中,其中真正起反作弊作用的是PnkBstrB,但PnkBstrB依賴和掛鉤于于游戲,也就是說,當(dāng)游戲未啟動(dòng)時(shí),PnkBstrB服務(wù)不會(huì)啟動(dòng),而游戲一旦啟動(dòng),PnkBstrB也隨之啟動(dòng)。
我先前說過,PB飽受各大游戲廠商青睞,但是最近幾年卻銷聲匿跡,很大一部分原因是因?yàn)樘嘤脩舯г筆B對于網(wǎng)絡(luò)的要求之高,以至于PB與服務(wù)器稍有連接問題就會(huì)將玩家踢出服務(wù)器。由于在戰(zhàn)地3使用中,這種故障的頻發(fā)導(dǎo)致PB一片罵名,在戰(zhàn)地4中EA引進(jìn)了FairFight“公平對戰(zhàn)”反作弊系統(tǒng),和PB共同運(yùn)行,最后在戰(zhàn)地1中,PB徹底被FairFight“公平對戰(zhàn)”取代。

FairFight“公平對戰(zhàn)”
戰(zhàn)地可能是最好做掛的游戲了,尤其是只用了FF的戰(zhàn)地1
——落葉雙飛hh(TMDHack制作者)

由GameBlocks LLC公司開發(fā)的FairFight“公平對戰(zhàn)”(以下簡稱FF),F(xiàn)F是一款完全部署于服務(wù)器端的反作弊機(jī)制,F(xiàn)airFight使用GameBlocks專有的GameChanger規(guī)則引擎和數(shù)據(jù)庫結(jié)構(gòu)來評估玩家的游戲行為。玩家的行為是針對多個(gè)標(biāo)記進(jìn)行測試,以確定是否發(fā)生作弊行為。FairFight使用客觀的服務(wù)器端報(bào)告工具交叉檢查這些指標(biāo),并在兩種方法與作弊相關(guān)時(shí)采取行動(dòng)。FairFight給出了不同的處罰。它有一個(gè)完整的懲罰制度。首先,如果它檢測到你作弊,它可以給你一個(gè)警告。它也可以給予一個(gè)限制。最后,它會(huì)給予一個(gè)封禁/暫時(shí)性封禁。
FairFight通過分析玩家統(tǒng)計(jì)和服務(wù)器端作弊檢測來檢測外掛。它分析你的統(tǒng)計(jì)數(shù)據(jù),在不同的比賽中進(jìn)行不同的動(dòng)態(tài)分析,如果統(tǒng)計(jì)數(shù)據(jù)顯示出有高度作弊嫌疑,它會(huì)給你一個(gè)警告/限制/封禁。FairFight也使用服務(wù)器端的作弊檢測,如前所述,它檢測可疑的移動(dòng),和事件。例如,如果一個(gè)武器不可能從200碼范圍內(nèi)擊中一個(gè)玩家,如果你這樣做了,那么它會(huì)分析這些信息并給予一個(gè)警告/限制/封禁。
看起來很美好:

這就是EA被PB嚇怕了之后,完全使用的FF的戰(zhàn)地1,非??植缹Π??
再加上戰(zhàn)地1的私人租的服務(wù)器管理權(quán)限相比戰(zhàn)地4削弱了太多,在戰(zhàn)地4就算PB和FF都不給力,CNUB(中國戰(zhàn)地聯(lián)Ban)也依舊在保護(hù)玩家的游戲的體驗(yàn)(不過現(xiàn)在需要RIP一下CNUB,已經(jīng)無人管理了貌似),純FF的游戲環(huán)境真的是極差。
為什么導(dǎo)致了FF如此低下的能力?
首先,F(xiàn)F全程服務(wù)器端,沒有了類似PB那種大量服務(wù)器與客戶端交換導(dǎo)致玩家連接失敗被踢出,完全通過統(tǒng)計(jì)數(shù)據(jù)監(jiān)察玩家是否作弊看起來很美好,但是,你想過沒有,放棄本地監(jiān)察,你這難道不是明擺著給人去改內(nèi)存?

這張圖是制作戰(zhàn)地1外掛時(shí)需要用到的內(nèi)存地址偏移,可以注意到紅框處就是FF請求從本地發(fā)送屏幕截圖的內(nèi)存地址偏移,外掛制作者只需輕松做手腳即可將FF的大部分功能無效化。
VAC“維爾福反作弊系統(tǒng)”
一片空地上的一扇門
——國外玩家評VAC

VAC“維爾福反作弊系統(tǒng)”(以下簡稱VAC)是一款由維爾福公司開發(fā)的反作弊解決方案,同時(shí)也是Steam游戲開發(fā)平臺(tái)的元件之一,首次出現(xiàn)在2002年的反恐精英1.6版中。在2006年11月的一周之中,VAC偵測到了超過一萬個(gè)作弊企圖。在2012年,據(jù)統(tǒng)計(jì)有超過一百五十萬個(gè)Steam帳戶被VAC停權(quán)禁止。到了2013年,VAC已被用在Steam平臺(tái)的超過60款游戲之中。
說起VAC,就不得不說起CSGO。
首先CSGO的反作弊一定會(huì)你們罵到爆炸,所以你們先冷靜一下,我們來以CSGO為例分析一下VAC到底靠不靠譜。
(來自騰訊游戲安全實(shí)驗(yàn)室的專業(yè)分析:http://gslab.qq.com/article-274-1.html http://gslab.qq.com/article-277-1.html)
首先通過采取動(dòng)態(tài)調(diào)試,靜態(tài)分析,hook驗(yàn)證等方式,發(fā)現(xiàn)VAC在CS:GO上方案如下:

VAC在CS:GO上目前能感知到的只有簡單的特征上報(bào),可能考慮到CS:GO還采取了視頻監(jiān)管和實(shí)名認(rèn)證等安全方案,故沒有采取更多的對抗和監(jiān)控策略,但確實(shí)能夠看到VAC仍然有不少預(yù)埋的檢測邏輯,可能會(huì)在特定業(yè)務(wù)場景下,配合動(dòng)態(tài)方案開啟。
說句人話:
1. CS:GO游戲通用安全保護(hù)強(qiáng)度不高,游戲分析門檻較低,導(dǎo)致了外掛制作成本較低
2. CS:GO-VAC檢測強(qiáng)度不高,導(dǎo)致了外掛存活周期較長。
3. CS:GO無前端實(shí)時(shí)對抗方案,處罰作弊具有延后性。
4. CS:GO人物坐標(biāo)全局下發(fā),導(dǎo)致游戲會(huì)長久的存在FPS通用的透視自瞄等外掛風(fēng)險(xiǎn)
通過騰訊游戲安全實(shí)驗(yàn)室的這個(gè)專業(yè)分析現(xiàn)在你知道制作CSGO外掛難度有多低了吧,VAC到現(xiàn)在都只是采用特征檢測策略進(jìn)行反作弊,你只要好好的調(diào)試下CSGO,找關(guān)鍵一下值的地址,寫點(diǎn)簡單的邏輯,輕輕松松一個(gè)外掛就出來了,更有甚者,國外一堆CSGO外掛都是開源的,拿回來自己編譯一下加個(gè)殼,掛個(gè)淘寶分分鐘往外賣。
Valve pls fix it!
BattlEye“戰(zhàn)眼”
反作弊系統(tǒng)的黃金標(biāo)準(zhǔn)
——BattlEye官方宣傳語

BattlEye“戰(zhàn)眼”,想必只要玩過彩虹六號:圍攻,或者絕地求生:大逃殺的玩家都不會(huì)陌生。
BattlEye“戰(zhàn)眼”(以下簡稱BE)由Bastian Suter于2004年10月創(chuàng)建。最初作為戰(zhàn)地:越南的第三方反作弊,發(fā)布后,迅速獲得了第一個(gè)認(rèn)可。2005年初,它被納入了第一個(gè)職業(yè)聯(lián)賽。由于社區(qū)的要求,BattlEye隨后被移植到戰(zhàn)地:1942,并再次被一些聯(lián)賽使用。接著被廣泛用于ARMA(武裝突襲)系列中。至今BE已經(jīng)保護(hù)了游戲界11年。
我個(gè)人認(rèn)為他是目前世界上最為強(qiáng)大的ACS之一,那也許你要問了,為什么PUBG的外掛多的成堆呢?別急,聽我慢慢道來。
“ADS deployed and ready to go !”彩虹六號:圍攻的GSG9干員:Jagear的部署ADS主動(dòng)防御系統(tǒng)時(shí)說的這句你也許不會(huì)陌生,作為反作弊界的ADS,完全成熟的主動(dòng)防護(hù)系統(tǒng)成為了BE強(qiáng)有力的反作弊手段。如果說普通反作弊系統(tǒng)是城墻,那么BE就是一輛戰(zhàn)車,他堅(jiān)不可摧,主動(dòng)追擊敵人并予以制裁。
大家應(yīng)該會(huì)注意到BE有個(gè)Launcher(啟動(dòng)器),在游戲進(jìn)程運(yùn)行之前,BE會(huì)先行啟動(dòng)自己的BE服務(wù),并確保游戲運(yùn)行前的環(huán)境足夠安全,才會(huì)以特殊的方式啟動(dòng)游戲本身進(jìn)程。
同時(shí),BE使用創(chuàng)新的,復(fù)雜的特定啟發(fā)式/通用檢測和作弊分析程序,在用戶和內(nèi)核模式下快速動(dòng)態(tài)和永久地掃描玩家的系統(tǒng),實(shí)現(xiàn)這種啟發(fā)式掃描和通用掃描相結(jié)合的方式使得BE能夠有效遏制作弊進(jìn)程的創(chuàng)建以及文件的存活周期,導(dǎo)致外掛開發(fā)者更新外掛周期出奇的高。同時(shí),吸取了PB高強(qiáng)度服務(wù)器數(shù)據(jù)和客戶端數(shù)據(jù)交互,通過高度加密的數(shù)據(jù)包通過游戲自己的網(wǎng)絡(luò)連接進(jìn)行通信,但不像PB服務(wù)對防火墻過于敏感,不需要任何額外的端口/防火墻轉(zhuǎn)發(fā),極大優(yōu)化了反作弊程序?qū)τ谕婕矣螒蝮w驗(yàn)的影響。并且,針對不同的游戲有著不同的針對性方案,例如針對ARMA(武裝突襲)腳本檢測。
那你可能要問了,BE這么厲害,怎么剛剛我在決賽圈的什么自瞄透視,我在天上看的一清二楚,更有橡膠果實(shí)掛讓人忍俊不禁:

首先我們都知道彩虹六號:圍攻(以下簡稱R6s)和絕地求生:大逃殺(以下簡稱PUBG)都是由BE提供反作弊保護(hù),但是R6s的作弊率卻要遠(yuǎn)遠(yuǎn)小于PUBG,這是為什么呢?
首先玩家基數(shù)是一個(gè)很重要的原因,其次R6s是由育碧開發(fā)的,再BUG育碧在代碼的邏輯以及規(guī)范肯定是比藍(lán)洞這種垃圾公司好的多,藍(lán)洞的代碼很多都是在本地計(jì)算完成,甚至沒有二次校驗(yàn),引擎也不是UE4這種“公交車”,所以外掛代碼泛用性相對較低。

接著是開掛成本,PUBG作為一款火遍全世界的游戲,制作和銷售外掛的暴利可想而知,更有甚者是買掛送號,因?yàn)橹灰髡卟患皶r(shí)更新,BE遲早會(huì)發(fā)現(xiàn)并封禁此類外掛,所以作者可能會(huì)提前做出多種特征碼的外掛,在BE升級間隙放出另外一種特征碼的外掛,而其售價(jià)僅為98RMB,開掛成本相當(dāng)?shù)?,而R6s需要168RMB,開掛成本相對高出了很多。

何況,我聽說有些PUBG外掛是通過癱瘓BE服務(wù),來實(shí)現(xiàn)外掛目的的,因?yàn)樗麄兌贾溃婧虰E對抗是很快就會(huì)被發(fā)現(xiàn)并封禁的,只能從系統(tǒng)級的角度來做些什么了。
總結(jié)
其實(shí),任何反作弊軟件都不是萬能的,只要你更新有一點(diǎn)不及時(shí),反作弊系統(tǒng)就會(huì)陷入被動(dòng),那么這場反作弊之戰(zhàn),真的就是一場無盡的戰(zhàn)爭了嗎?答案是否定的,一個(gè)最好的解決方案,就是:完全在服務(wù)器運(yùn)算。使用了此類技術(shù)的引擎有:AutoDesk的BigWorld引擎,并被用于著名游戲:坦克世界

但是由于坦克世界在游戲節(jié)奏相對于FPS來說較慢,所以非常適合使用純服務(wù)器運(yùn)算引擎,而FPS對于即時(shí)運(yùn)算要求過大,所以對于服務(wù)器運(yùn)算是個(gè)巨大的挑戰(zhàn),游戲運(yùn)營成本也會(huì)非常高。
Once a cheater, always a cheater !
公平競技,從我做起。
如果有什么錯(cuò)誤歡迎在評論區(qū)指正,也希望大家在評論區(qū)說說自己對這些事的看法,也希望大家不要吝嗇自己的硬幣和收藏,喜歡的點(diǎn)個(gè)關(guān)注吧!
2017年11月15日 01:34:14 已輸入4419字