遊戲到底怎麼發現你作弊?從《CS》到鬥地主的反作弊往事

2023 年 2 月 21 日,《Dota 2》一次永久封禁了四萬多個賬號。

比封號數字更有意思的,是 Valve 抓人的辦法。它在更新裏埋了一小塊特殊數據。正常玩遊戲,永遠讀不到那裏;某些外掛爲了拿到額外信息,卻會主動翻進去。

Valve 把這種佈置叫作 Honeypot,蜜罐。

那塊數據不是留給玩家的,只等作弊程序自己找上門。被封的四萬多個賬號都讀過它,也就不必再拿一段擊殺錄像猜來猜去。

二十多年前,抓外掛可沒這麼講究。一間《反恐精英》服務器裏要是有人喊“這人開了”,大家先找的不是反作弊程序,是服主。

▍當年懷疑有人開掛,先喊管理員

早期《CS》公共服務器裏,吵架往往比判斷容易。剛有人被穿牆打死,公屏就開始爭:一邊認定是透視,另一邊說自己聽見了腳步。

管理員可以切過去旁觀,翻日誌,也可以把人踢出去。可他不會一直在線。就算來了,碰上只在關鍵時刻開一點輔助瞄準、平時照常走位的玩家,也未必看得出來。

何況被踢的人換個服務器,照樣接着打。

2000 年 9 月,PunkBuster 的早期版本問世。最初的測試版面向《半條命》的聯機環境,後來《戰地》玩家也常常會碰到它。它不等管理員進房,而是自己去查運行中的程序、內存和遊戲環境,找作弊工具留下的痕跡。

2002 年,Valve 把 VAC 帶進《反恐精英》。服主的封禁只管自己那臺服務器,VAC 的處罰則在所有受 VAC 保護的服務器之間生效。到了 VAC2,新觸發的封禁基本都成了永久的。

這套辦法和殺毒軟件很像:先研究外掛長什麼樣,再去電腦上找它的痕跡。麻煩在於對手也會更新。這一版被認出來,作者改掉特徵,下一版可能又能用了。

連什麼時候封號都得算計。一檢測到就立刻封,作者很容易拿自己的更新記錄逐個對照,摸清是哪處改動露了餡。延遲封禁不夠痛快,但能少給對方一點提示。

▍從查程序,到重看一局比賽

到了《CS:GO》,有些作弊者已經不追求槍槍爆頭了。

知道對面有沒有進 B 點,知道煙後是不是藏着人,或者讓準星在最後一瞬間悄悄偏正一點,就夠改變結果。戰績可以很普通,槍法看着也不算離譜。

2013 年 5 月,《CS:GO》開始測試 Overwatch(監管系統)。符合條件的玩家會收到匿名錄像,判斷裏面有沒有透視、瞄準輔助或者其他違規。

監管界面裏有個選項叫“證據不足”。

提前架槍,可能是聽見了腳步;穿煙打中人,可能是運氣,也可能是對地圖太熟。一個人一路繞開對面的埋伏,也未必能憑錄像斷定他開了全圖。審查者看到的只是行爲,得自己判斷這些行爲到底能證明什麼。

問題是比賽每天都在打,可疑片段越攢越多。人看得再認真,也有看不過來的時候。

2018 年,Valve 工程師 John McDonald 在遊戲開發者大會上介紹了 VACnet。它用機器學習模型分析對局裏的瞄準行爲,從海量記錄中篩出更值得調查的場次。它看的不只是命中率,還有開槍前後視角怎麼移動、準星靠近目標時走了什麼軌跡。

外掛可以改名,程序可以一遍遍改;可只要作弊者還得在遊戲裏開槍,準星就會留下記錄。當然,機器篩完還得走後續判定,“爆頭多”本身不能當封號理由。

國內玩家熟悉的遊戲裏也有類似思路,只是要分清處理的是哪種違規。

《王者榮耀》在 2021 年介紹過“鷹眼護衛隊”:一部分玩家參與觀看對局片段,判斷掛機、消極比賽、故意送人頭之類的行爲。官方後來還專門回應過隊員亂判、片面追求準確率的問題,加了客服抽檢和複覈。

它主要處理的是不良對局行爲,不是靠玩家投票去認外掛程序。隊友操作稀爛和故意演你,隔着回放有時也真不好分。

▍牆後的人,爲什麼會被透視看見

說到透視,很多人會想到一堵忽然變透明的牆。但有些外掛根本不用碰那堵牆。

聯機遊戲爲了畫面順暢,常常提前把一部分角色信息發到玩家電腦上。屏幕上沒看見敵人,不代表客戶端裏沒有他的座標。外掛讀出這些本不該顯示的數據,就能把牆後的站位標出來。

《無畏契約》的開發團隊換了個思路:儘量不把你此刻用不上的敵人位置發給你的客戶端。

2020 年,Riot 工程師 Paul Chamberlain 寫過一篇介紹 Fog of War(戰爭迷霧)的技術文章。思路是讓服務器先判斷某個敵人有沒有可能進入你的視野,再決定什麼時候同步他的位置。

難的不是藏,是不能藏過頭。發早了,外掛照樣能偷看;發晚了,對方從牆角露頭時,正常玩家眼前會憑空冒出一個人。服務器還得在一幀之內做完大量判斷。Riot 早期原型一度要花掉約一半的服務器幀時間,反覆改算法後才壓到 2% 以下。

與其等透視出現再追着封,Riot 先改了遊戲傳信息的方式。

▍既然有人偷看,就留一份假答案

開頭說的《Dota 2》蜜罐,利用的正是外掛愛讀內部數據的習慣。Valve 當時說得很明確:被封的四萬多個賬號,都訪問過那片正常遊玩不會讀取的區域。

同樣是 2023 年,《使命召喚》的 RICOCHET 反作弊團隊公開了另一種陷阱,叫 Hallucinations(幻象)。

遊戲裏會出現模仿真實玩家行動的誘餌角色。普通玩家看不見;被標記的可疑賬號或已確認的作弊賬號,用非法信息工具時卻可能看到它們,有的自瞄工具甚至會直接鎖上去。

一個正常視野里根本不該出現的目標被人長時間追蹤,調查人員就有了進一步覈查的線索。這不是說朝空地亂開一槍就會被封。官方公佈誘餌用途時,也把“調查”和“對已確認作弊者的干擾”分開講了。

2024 年 9 月,Valve 在《Deadlock》的更新公告裏寫了個處罰辦法:發現作弊者後,對手可以選擇立刻結束比賽並封號,或者先把他變成青蛙,讓他在場上蹦到這局結束,再封。

不過青蛙是處罰,不是檢測手段。到底憑什麼認出作弊者,Valve 在那份公告裏沒細說。具體怎麼檢測出來是不是外掛我們也不太好說…

▍《英雄聯盟》《王者榮耀》還要判斷:是不是換了個人打

傳統外掛是讓程序替玩家多幹點活。排位裏還有一種麻煩,光看畫面很難發現:賬號還是那個賬號,屏幕前的人換了。

2024 年,Riot 開始在中國大陸以外的《英雄聯盟》服務器部署 Vanguard。它會對運行環境做更深的檢查來找作弊工具,系統權限和兼容性也隨之成了爭論焦點。國服的安排不能照搬海外。

查得深,也不見得次次都對。2023 年《CS2》就鬧過一場誤封:AMD 顯卡驅動的 Anti-Lag+ 爲了降延遲,會動到遊戲引擎代碼,結果撞上了 VAC 的檢測規則。AMD 後來撤下了相關功能,Valve 也開始撤銷受影響的封禁。

2026 年 9 月,Riot 公開介紹了 Anti-Boost 反代練系統。它從 2025 年起就在《英雄聯盟》裏測試,要找的是:一個賬號的排位分,是不是有相當一部分是別的更高水平玩家登錄上去替他打出來的。連贏幾局不等於會被當成代練,系統也不是靠某一次操作給你“驗明正身”。

《王者榮耀》今年 3 月也公佈過反代練識別的思路。官方提到,就算代練刻意模仿號主,連招節奏、反應速度這些細微差別仍可能露出線索。不過公告沒給出完整的判斷規則,不能據此認爲連招突然快了一點就要封號。

至於查修改器、變速器、客戶端篡改,又是另一門手藝。舉報消極、查外掛、查代練,目的都是維護對局規則,但不是同一套算法什麼都能看穿。

▍鬥地主沒有準星,怎麼抓作弊?

《JJ比賽》的作弊舉報頁面裏,有一條很有畫面感的填寫示例:

“地主出單報小王,隊友不頂大王發對子。”

看到這種出牌,隊友多半要急。但這只是舉報時可以描述的疑點,“沒用大王壓小王”本身遠不夠封號。

JJ 公佈的判罰條例比舉報示例細得多。它不要求玩家記住所有出過的牌;一手看着離譜的牌,也得結合前後幾輪來判斷。

要認定串通作弊,平臺還得看賬號之間有沒有關聯、牌局裏有沒有符合規則定義的異常。嚴重決策失誤、消極報復和作弊,在條例裏是分開處理的。2026 年 7 月起,經典鬥地主的舉報先走機器審覈,沒通過的可以申請人工複審。

這就是棋牌和槍戰遊戲的不同。槍戰裏還能看準星怎麼突然移過去,牌桌上能留下的只有出牌順序、手牌和牌局記錄。系統能回放每一手牌,卻不能把所有讓人看不懂的決定都算成串通。

那條舉報示例會讓人忍不住追問:“手裏有大王,爲什麼不壓?”可翻到正式的經典鬥地主判罰條例,第二條第一款寫得明明白白:農民可以按自己的牌型出牌,不要求大王必須壓小王。

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com