家好,這里是正經(jīng)游戲,我是正經(jīng)小弟。
說到玩游戲,玩家都會(huì)崇拜那些操作非人的大神,而對(duì)于掛比則嗤之以鼻,實(shí)錘、舉報(bào)、讓官方封號(hào)不解釋。不過有一種外掛不但官方?jīng)]法抓到,連玩家看到都會(huì)頂禮膜拜。這就是技術(shù)宅發(fā)明的“物理外掛”。
↑↑↑先放個(gè)《部落沖突》自動(dòng)操作器大家感受下,升級(jí)搶寶石什么的完全不用動(dòng)手!
要說技術(shù)宅玩游戲真的很恐怖,在代碼、機(jī)械和腦洞的領(lǐng)域,恐怕無人能出其右。手殘對(duì)于他們來說根本不是問題!
今天小弟就給大家盤點(diǎn)下那些連官方都無可奈何的神級(jí)物理外掛。
先說個(gè)技術(shù)含量低的讓大家先做個(gè)心理準(zhǔn)備。玩過LOL的都知道,視野寬是非常占優(yōu)勢(shì)的。當(dāng)初LOL的輔助盒子就曾裝載拉遠(yuǎn)視距功能,后來被騰訊認(rèn)為不公平,封禁了盒子。
不過這都不是事兒。因?yàn)槿绻阌萌猎O(shè)置來玩LOL,你就會(huì)發(fā)現(xiàn)原來還有這樣的開圖方式!
在三屏情況下,你可以輕易看到比別人多兩個(gè)屏幕的視野。而在地圖上的視野框也是長(zhǎng)長(zhǎng)的一條,不知道官方看到后作何感想……
至于為啥把三屏歸到技術(shù)宅的物理外掛……哪個(gè)技術(shù)宅還沒個(gè)三屏顯示器啊!
微信《跳一跳》這個(gè)小程序一上線就刷爆了朋友圈。這游戲的玩法十分簡(jiǎn)單:手指觸碰手機(jī)屏幕控制一個(gè)小人,長(zhǎng)按蓄力,松開后這個(gè)小人就會(huì)從一個(gè)盒子跳到另一個(gè)盒子上。每成功跳上一個(gè)盒子,就會(huì)有分?jǐn)?shù)的累積。
不過想要得高分也不是容易事,因?yàn)楹凶佑写笥行。凶娱g的距離也不一樣。
但這難不倒技術(shù)宅!國(guó)內(nèi)一個(gè)程序員發(fā)明了一種能通關(guān)《跳一跳》的“外掛”。
他先用尺子在屏幕上測(cè)算出盒子之間的各種距離,然后計(jì)算出對(duì)應(yīng)的蓄力時(shí)間,之后在物理外掛的電腦程序上輸入數(shù)值,驅(qū)動(dòng)物理外掛按下屏幕,游戲中的小跳棋就成功跳上了另一個(gè)盒子。
當(dāng)初頗有人氣的《別踩白塊兒》可能大家都有些印象,它的玩法其實(shí)跟音游有很多相似——只要踩著黑色的磚塊不斷前進(jìn)即可,直到支撐不住犯下失誤。
不過這個(gè)游戲有個(gè)特點(diǎn),就是畫面黑白分明、明暗清晰,因此很容易讓光感應(yīng)器識(shí)別。這就有了技術(shù)宅發(fā)揮的余地。
來自印度的Surya就率先做出了自動(dòng)玩《別踩白塊兒》的光感設(shè)備。 雖然外觀簡(jiǎn)陋,但運(yùn)行時(shí)可以說是相當(dāng)帶感。
不管多快都不是問題!
《Flappy Bird》是曾經(jīng)風(fēng)靡一時(shí)的虐心小游戲,其玩法簡(jiǎn)單,只需要點(diǎn)擊屏幕讓鳥飛起來且不撞到水管即可。但是由于判定問題使得操作難度超高。不過這只讓全世界玩家點(diǎn)到手抽筋、怒到摔手機(jī)的鳥,卻被兩位中國(guó)技術(shù)宅搞定了!
兩位來自西安的技術(shù)宅,通過識(shí)別系統(tǒng)加攝像頭確定水管位置,控制系統(tǒng)加機(jī)械臂設(shè)計(jì)了一個(gè)專門玩“鳥”的機(jī)器人。這個(gè)機(jī)器人玩Flappy Bird輕輕松松突破百分,讓一些玩“鳥”高手也望塵莫及。
如果以上幾個(gè)你覺得太簡(jiǎn)單了。至少在設(shè)備上不夠“科技感”。那么接下來小弟就給大家介紹幾套科技感十足的設(shè)備。
《智龍迷城》可以算是日本國(guó)民級(jí)消除游戲了。這游戲的算法復(fù)雜,如果不用腳本,那么久十分考驗(yàn)眼力和邏輯能力了。
不過用腳本會(huì)封號(hào),我們就迂回作戰(zhàn)。于是日本的一個(gè)技術(shù)宅就將最優(yōu)解法的腳本編寫進(jìn)程序,然后通過攝像頭對(duì)游戲畫面的捕捉,實(shí)現(xiàn)了由機(jī)器自主判斷來進(jìn)行操作的全自動(dòng)模式。
值得一提的是,這套設(shè)備還打破了由日本小學(xué)生ゆわ創(chuàng)造的《智龍迷城》比賽紀(jì)錄……不知道這位小學(xué)生如果知道這個(gè)如果知道這個(gè)“物理外掛”,會(huì)有多大的心理陰影面積。
如果說外掛是PC游戲的重災(zāi)區(qū),那么物理外掛的“重災(zāi)區(qū)”應(yīng)該就是音游(音樂游戲)了。因?yàn)榇蟛糠忠粲味际强?strong>跟著音樂和提示敲擊按鍵完成游戲的。
在日本這個(gè)盛產(chǎn)音游和技術(shù)宅的國(guó)度,總有一些手殘又想要完美演奏出樂曲的技術(shù)宅。他們制作出了各式各樣的“物理外掛”。
比如《LoveLive!》演奏器。
比如《初音未來:歌姬計(jì)劃》演奏器。
比如《太鼓達(dá)人》演奏器。
當(dāng)然國(guó)產(chǎn)音游也不成問題,比如國(guó)人“Beiv”制作的《樂動(dòng)達(dá)人》自動(dòng)演奏器等等。
不過你們知道嗎?我們國(guó)內(nèi)最早的游戲“物理外掛”其實(shí)是出自國(guó)產(chǎn)山寨產(chǎn)品。
沒錯(cuò),當(dāng)初我們玩的小霸王游戲機(jī),其實(shí)算是任天堂正版FC紅白機(jī)的魔改。而魔改中最明顯的就是手柄按鍵。
可能很多人都想象不到,任天堂正版FC紅白機(jī)的手柄其實(shí)只有單發(fā)的A、B兩個(gè)按鍵!
而國(guó)內(nèi)的小霸王山寨出了FC游戲機(jī)后,估計(jì)連山寨者也覺得只有單發(fā)按鍵的設(shè)定太反人類了!難道就不怕手按抽筋么?
于是小霸王游戲機(jī)就在原本FC的雙按鍵手柄基礎(chǔ)上又增加了X(連發(fā)A)、Y(連發(fā)B)兩個(gè)按鍵。
所以四按鍵FC,其實(shí)是“中國(guó)特有”。不過由于小霸王當(dāng)初代替FC占領(lǐng)了中國(guó)市場(chǎng),以至于很多玩家都以為四按鍵才是FC的原版標(biāo)配。
小弟有話說:小霸王游戲機(jī)的手柄是小弟我這輩子用過最棒的“物理外掛”了!
那么問題來了:你有見過最牛的物理外掛是什么?
掛這個(gè)東西相信大家都不陌生,比如你剛剛回到家,累的不行,想打開電腦玩幾把游戲,結(jié)果,心態(tài)爆炸,各種自瞄鎖頭。透視。舉報(bào)了還沒用,這個(gè)就是其他的人將自己的快樂建立在你的基礎(chǔ)上,就大家聊聊那些反外掛的事
外掛這個(gè)事情要追溯到 2000 年。當(dāng)年星際爭(zhēng)霸的開全圖,CS 的透視、穿墻等,讓游戲完全失去公平競(jìng)技性。當(dāng)時(shí)反外掛的概念也呼之欲出。而后隨著 PC 端網(wǎng)絡(luò)游戲的崛起,就很少要有人再去玩或者談起這些游戲,但是游戲外掛卻跟隨時(shí)代的腳步而不斷前進(jìn)。
先說外掛的種類,大家都知道了,脫機(jī)掛(封包掛),內(nèi)存掛(調(diào)用游戲內(nèi)功能,篡改游戲數(shù)據(jù)),模擬掛(模擬鍵盤鼠標(biāo)代替人工操作)諸如此類
技術(shù)性分類:
1.脫機(jī)類外掛
在游戲開發(fā)過程中,每款游戲的客戶端與服務(wù)端都會(huì)有固定的通信格式,大部分游戲通信協(xié)議位于TCP層之上,自定義的數(shù)據(jù)結(jié)構(gòu),外掛開發(fā)者們稱此為封包。下面簡(jiǎn)單列舉一個(gè)簡(jiǎn)單的打斗封包,以方便說明脫機(jī)類外掛原理。
0000ABCD 0000DCBA 00001234 00001000
例如玩家1在與玩家2打斗過程中,發(fā)送到服務(wù)器這樣一個(gè)16字節(jié)的數(shù)據(jù)包,其中游戲開發(fā)者定義此數(shù)據(jù)包含義如下:
0000ABCD:玩家1的ID。
0000DCBA:玩家2的ID。
00001234:玩家1所使用的技能編號(hào)。
00001000:玩家1對(duì)玩家2造成的傷害,轉(zhuǎn)換為十進(jìn)制為:4096。
當(dāng)服務(wù)器接收到此數(shù)據(jù)包時(shí),則會(huì)將玩家2的血量減少4096點(diǎn),如果玩家血量減少后小于等于0,則判定為玩家2已經(jīng)陣亡。這時(shí)服務(wù)器會(huì)返回給玩家2的客戶端一個(gè)數(shù)據(jù)包,玩家2的客戶端則播放一個(gè)玩家2已經(jīng)死亡的動(dòng)畫。
以上邏輯,其實(shí)存在著大量的漏洞,比如說,服務(wù)器應(yīng)該判定玩家上一次釋放00001234號(hào)技能是否在冷卻時(shí)間內(nèi),再比如說,服務(wù)器應(yīng)該判定玩家戰(zhàn)斗過程中所造成的傷害是否與其裝備、法力值、攻擊力、暴擊等相吻合,是否超過了游戲本身限制的最大傷害。類似這種漏洞,每一款游戲都會(huì)存在,只不過不會(huì)這么明顯。一些老游戲在這方面做的相對(duì)較弱,所以漏洞更多。
另外,在游戲開發(fā)過程中,數(shù)據(jù)通信的格式在游戲開發(fā)商的公司中都有相關(guān)文檔明確定義的。而這些文檔非常機(jī)密。一些游戲開發(fā)商公司的安全做的不夠好的情況下,可能會(huì)造成游戲代碼以及文檔的泄露。這些資料,一旦流入外掛開發(fā)者手中,那么這款游戲就極有可能會(huì)出現(xiàn)脫機(jī)式外掛。
脫機(jī)外掛定義:在不開啟游戲客戶端的情況下,第三方程序直接與游戲服務(wù)器進(jìn)行通信,模擬賬號(hào)登陸驗(yàn)證、選擇角色、進(jìn)入游戲、進(jìn)入場(chǎng)景、開始戰(zhàn)斗、對(duì)怪物造成傷害等操作時(shí)的合法數(shù)據(jù)包,發(fā)送給服務(wù)器,而服務(wù)器是沒有能力判斷出這些包是否是客戶端發(fā)來的,即便有驗(yàn)證手段,由于源碼已經(jīng)泄露,外掛開發(fā)者可以輕而易舉的模擬出服務(wù)端的各種驗(yàn)證機(jī)制。即便數(shù)據(jù)包傳送過程中是加密的,由于源碼外漏,外掛開發(fā)者一樣可以正確模擬出數(shù)據(jù)包的加密方式。
2.模擬發(fā)包類外掛
脫機(jī)類外掛多半依賴于游戲開發(fā)商的資料外泄,而模擬發(fā)包類外掛與脫機(jī)類外掛很近似。原因是一些外掛開發(fā)者本身可能是游戲開發(fā)者出身,對(duì)游戲中的邏輯相當(dāng)了解,他們可以用調(diào)試+抓包分析的方法,在沒有源碼以及通信格式資料的情況下,分析出一些游戲中關(guān)鍵的數(shù)據(jù)包,并采用一定的模擬發(fā)包技術(shù),完成游戲中本身含有的功能。
此類外掛多半需要向游戲中注入一個(gè)dll文件,并且用dll獲取到與服務(wù)器通信的socket句柄,在此socket句柄上,將自己組織好的、合法的數(shù)據(jù)包發(fā)送到服務(wù)器。部分比較老的游戲中很常見此類的外掛,比如決戰(zhàn)OL中的掛機(jī)內(nèi)掛中的喊話功能,自動(dòng)喝藥功能,都是模擬發(fā)包方式完成的。
3、內(nèi)存式外掛
在沒有游戲客戶端源碼,并且沒有一定的游戲開發(fā)經(jīng)驗(yàn)的情況下,依然是可以進(jìn)行外掛開發(fā)的。而這些外掛開發(fā)者,一般熟練掌握操作系統(tǒng)的各種底層機(jī)制,如模塊、線程、內(nèi)存、內(nèi)核對(duì)象、內(nèi)核機(jī)制等技術(shù)。這些技術(shù),有助于他們?nèi)シ治鲇螒蚩蛻舳诉M(jìn)程中的邏輯和重要數(shù)據(jù),之后他們一般會(huì)注入dll到游戲進(jìn)程,去操作游戲進(jìn)程內(nèi)數(shù)據(jù),完成一些特殊功能。當(dāng)遇到一些改動(dòng),服務(wù)器恰好沒有校驗(yàn)時(shí),他們的外掛功能便成功執(zhí)行。
三、 游戲外掛的基本原理
對(duì)于單機(jī)游戲而言:游戲中絕大部分的參數(shù)(比如血、藍(lán)、能量亦或是金幣)都存儲(chǔ)在計(jì)算機(jī)的堆棧中,一些類似劇情進(jìn)度的則加密后寫入本地的自定義配置文件中;所以單機(jī)外掛原理是修改本地配置文件
對(duì)于頁(yè)游、網(wǎng)游和手游:游戲外掛通常是修改內(nèi)存數(shù)據(jù)、或者截獲網(wǎng)絡(luò)封包。
1、修改內(nèi)存數(shù)據(jù)的原理:服務(wù)器保存了大量的重要的參數(shù),但由于客戶端不可避免的需要進(jìn)行大量的計(jì)算和資源的加載,本地內(nèi)存種必定存有部分的臨時(shí)變量,通過判斷這些變量的變化規(guī)律和函數(shù)的破密尋到利于自身的參數(shù),比如傷害值一類,繼而尋找該變量的內(nèi)存地址,根據(jù)指針偏移分析獲得內(nèi)存基址,再提升權(quán)限利用Windows API把自定義數(shù)值寫入該內(nèi)存塊,就完成了修改某項(xiàng)數(shù)值的操作,一般來說,只要破解了一項(xiàng)數(shù)值,利用規(guī)律繼而破解其他數(shù)值就更加容易了。
2、截獲網(wǎng)絡(luò)封包的基本原理:Internet客戶/服務(wù)器模式的通訊一般采用TCP/IP通信協(xié)議,數(shù)據(jù)交換是通過IP數(shù)據(jù)包的傳輸來實(shí)現(xiàn)的,一般來說客戶端向服務(wù)器發(fā)出某些請(qǐng)求,比如移動(dòng)、戰(zhàn)斗等指令都是通過封包的形式和服務(wù)器交換數(shù)據(jù)。那么我們把本地發(fā)出消息稱為SEND,意思就是發(fā)送數(shù)據(jù),服務(wù)器收到我們SEND的消息后,會(huì)按照既定的程序把有關(guān)的信息反饋給客戶端,比如,移動(dòng)的坐標(biāo),戰(zhàn)斗的類型。把客戶端收到服務(wù)器發(fā)來的有關(guān)消息稱為RECV。接下來要做的工作就是分析客戶端和服務(wù)器之間往來的數(shù)據(jù)(也就是封包),這樣就可以提取到對(duì)我們有用的數(shù)據(jù)進(jìn)行修改,然后模擬服務(wù)器發(fā)給客戶端,或者模擬客戶端發(fā)送給服務(wù)器,這樣就可以實(shí)現(xiàn)修改游戲的目的。
1.1 封包的概念 本文所講的封包是指由sockets協(xié)議進(jìn)行發(fā)送與接收的數(shù)據(jù)包。廣義的封包是指計(jì)算機(jī)之間互相進(jìn)行通信的數(shù)據(jù)包,其可以因通信協(xié)議的不同而在內(nèi)容上有所不同。1.2 破解原理 目前破解封包加密與解密算法的方法主要是通過動(dòng)態(tài)調(diào)試技術(shù)來實(shí)現(xiàn)的。其原理是首先通過動(dòng)態(tài)調(diào)試跟蹤并取出加密與解密算法的代碼段,然后再通過分析這些代碼最終得出結(jié)論。
內(nèi)存掛再說內(nèi)存掛,內(nèi)存掛主要是對(duì)游戲數(shù)據(jù)進(jìn)行驗(yàn)證,比如傷害,移動(dòng)速度,血量等等,打個(gè)比方,就說以前很流行的變速齒輪(CE類修改內(nèi)存),早些年游戲沒有驗(yàn)證的時(shí)候幾乎是想要跑多快跑多快,現(xiàn)在都被和諧了,和諧的方式也非常簡(jiǎn)單,計(jì)算人物速度,再取人物的一個(gè)坐標(biāo)到另一個(gè)坐標(biāo)距離,這其中有一定偏差,如果差距超過設(shè)定的額度那么就可以判定玩家在使用加速工具。傷害,血值,都類似,任何數(shù)據(jù)都有算法來計(jì)算是否超過了預(yù)期最大值。
1、 壓槍:壓槍技術(shù)很多方法可以實(shí)現(xiàn),但高精度的壓槍,就需要修改內(nèi)存或者網(wǎng)絡(luò)封包,首先獲得槍口偏移信息,然后通過鼠標(biāo)移動(dòng)的虛擬指令,將準(zhǔn)星調(diào)到特定點(diǎn)。
2、透視:讀取內(nèi)存中的數(shù)據(jù)坐標(biāo),在屏幕上繪制出應(yīng)該對(duì)玩家隱藏的信息。在OBS推流時(shí),如果選擇僅推流游戲,那么這類"信息"僅對(duì)直播者可見。
3、自動(dòng)瞄頭:上兩者結(jié)合獲得,獲得玩家坐標(biāo),然后通過鼠標(biāo)移動(dòng)指令完成瞄頭。
總結(jié):如果能完美無視槍口跳動(dòng)時(shí)隨機(jī)的左右偏移量,那么基本可以認(rèn)為是讀取內(nèi)存的壓槍。對(duì)于透視的發(fā)現(xiàn)則難得多,但是不管裝的多像,最終目的肯定還是從這項(xiàng)功能收益。自動(dòng)瞄頭最容易發(fā)現(xiàn)。
修改內(nèi)存/封包類:同時(shí)秒殺多人、瞬移、一拳超人、圈外不受傷害等
總結(jié):通過修改內(nèi)存和封包實(shí)現(xiàn)各種喪心病狂的功能,及其容易被封號(hào),也很容易被看出來。
1、對(duì)服務(wù)器上的數(shù)據(jù)庫(kù)進(jìn)行嚴(yán)格加密,并且每天自動(dòng)更新隨機(jī)密碼,數(shù)據(jù)包經(jīng)常檢驗(yàn),而且效驗(yàn)結(jié)果以服務(wù)器上為準(zhǔn);
2、對(duì)游戲客戶端進(jìn)行嚴(yán)格檢測(cè),具體手段有:
(1)對(duì)關(guān)鍵api Hook進(jìn)行保護(hù),網(wǎng)絡(luò)相關(guān)send recv;
(2)dll注入檢測(cè)可能是hook loadlibrary,也有用定時(shí)檢測(cè)進(jìn)程模塊的(找到非法模塊就退出);
(3)對(duì)于用od進(jìn)行調(diào)試客戶端,還沒有完全有效的方法,一般就是加些花指令,加殼,這些方法對(duì)大量水平低的外掛作者已經(jīng)足夠了;
(4)很多游戲都會(huì)對(duì)PE、OD、按鍵精靈、簡(jiǎn)單游等進(jìn)行檢測(cè),主要是枚舉窗口名字,進(jìn)程名字,有這些名字的就封殺,但這種低級(jí)方法效果不大。
(5)按鍵類外掛檢測(cè),對(duì)于后臺(tái)腳本主要是用GetCursor,GetForegroundWindow,檢測(cè)窗口位置和鼠標(biāo)位置是否正確,還有些是對(duì)WM_ACTIVE消息進(jìn)行處理(神武就是這么干),對(duì)于前臺(tái)腳本除了把鼠標(biāo)弄偏移外,也就沒有什么更好的辦法了,不過這個(gè)偏移對(duì)普通玩家也很不友好,也影響游戲公司留存玩家。
(6)對(duì)于有些人說檢測(cè)鼠標(biāo)點(diǎn)擊位置的重復(fù)度,這個(gè)多半是他們自己的猜想,這樣做很容易造成誤封。
抵御逆向分析
除了少數(shù)通用性外掛(如鍵盤模擬外掛、通用加速掛)外,絕大部分外掛在制作前均需動(dòng)態(tài)調(diào)試和靜態(tài)分析游戲邏輯和數(shù)據(jù),找到關(guān)鍵邏輯和數(shù)據(jù)的位置,才能對(duì)游戲進(jìn)行修改,因此反調(diào)試和保護(hù)游戲邏輯是抵御游戲外掛產(chǎn)生的強(qiáng)有力的方式。
阻止外掛入侵
一旦游戲關(guān)鍵邏輯與數(shù)據(jù)被黑客分析完成,接下來黑客會(huì)通過編程對(duì)游戲客戶端進(jìn)行修改,修改游戲進(jìn)程常常通過一些系統(tǒng)函數(shù)如 ReadProcessMemory,WriteProcessMemroy ,或者通過向游戲進(jìn)程注入 dll 等方式修改游戲內(nèi)存,因此保護(hù)游戲內(nèi)存和惡意模塊掃描是進(jìn)一步防止外掛和被動(dòng)檢查外掛的有效措施。
游戲反外掛先行一步
Virbox 反外掛系統(tǒng)針對(duì)游戲安全問題,采用靜態(tài)保護(hù)和動(dòng)態(tài)保護(hù)相結(jié)合的方式,抵御和打擊外掛,為端游保駕護(hù)航,目前僅支持 Windows 系統(tǒng)。
靜態(tài)保護(hù)(Virbox Protector)
Virbox Protector 是深思自主研發(fā)的虛擬機(jī)外殼,用于保護(hù)游戲的代碼邏輯,強(qiáng)大的虛擬機(jī)保護(hù)以及為 Unity 游戲設(shè)計(jì)的獨(dú)特的 Unity3D 保護(hù),對(duì)游戲的逆向分析造成極大的阻礙,有效遏制外掛的產(chǎn)生。
? 代碼邏輯保護(hù)
現(xiàn)代反編譯工具日益強(qiáng)大,即使是 C/C++ 這類靜態(tài)語(yǔ)言編譯后的程序,也能將代碼還原到與源代碼相差無幾。沒有代碼保護(hù),游戲客戶端的代碼邏輯暴露,很容易被黑客發(fā)現(xiàn)攻擊的位置,使外掛的編寫成本變得很低。
Virbox Protector 可以通過混淆、虛擬機(jī)、代碼加密等方式對(duì)游戲中指定的函數(shù)進(jìn)行保護(hù),保護(hù)后的代碼無法自動(dòng)還原,黑客分析混淆和虛擬化的指令需要超過原先幾十上百倍的時(shí)間。對(duì)游戲客戶端的關(guān)鍵函數(shù)進(jìn)行保護(hù),每次客戶端更新,黑客都需要大量的時(shí)間重新分析被保護(hù)的代碼。
? 內(nèi)存校驗(yàn)
絕大部分外掛的高級(jí)功能都采用"內(nèi)存補(bǔ)丁"的方式對(duì)游戲模塊進(jìn)行修改,Virbox Protector 帶有內(nèi)存校驗(yàn)功能,能對(duì)游戲代碼進(jìn)行校驗(yàn),防止被打補(bǔ)丁。(該功能目前不支持 Unity3D 游戲)
Unity3D 保護(hù)
Unity 游戲采用 C# 編寫,相比于 C/C++ 開發(fā)的游戲,Unity 游戲更容易被黑客分析,使用 DnSpy、Reflector 等工具可以直接反編譯 Assembly-CSharp.dll 中的代碼,游戲代碼中的變量與函數(shù)名清晰可見。
Virbox Protector 對(duì) Assembly-CSharp.dll 中的方法都進(jìn)行了加密,只有在該方法運(yùn)行編譯為匯編代碼才解密,黑客無法通過 Dump 出原始代碼。
動(dòng)態(tài)保護(hù)(Virbox 反外掛引擎)
Virbox 反外掛引擎是一款驅(qū)動(dòng)級(jí)進(jìn)程保護(hù)系統(tǒng)。該系統(tǒng)結(jié)合了主動(dòng)防御(反調(diào)試、內(nèi)存保護(hù)、反注入、Hook 檢測(cè)等)和被動(dòng)防御(窗口檢測(cè)、內(nèi)存特征掃描等),動(dòng)態(tài)地保護(hù)游戲進(jìn)程。Virbox 反外掛引擎的主要功能如下:
? 反調(diào)試
編寫外掛或者盜版補(bǔ)丁,首先要做的是使用調(diào)試器(如 OllyDbg、x64dbg、Windbg、 Cheating Engine 等)調(diào)試軟件進(jìn)程,分析關(guān)鍵代碼邏輯和數(shù)據(jù)。Virbox 反外掛引擎對(duì)所保護(hù)的進(jìn)程進(jìn)行調(diào)試檢測(cè),并防止內(nèi)核調(diào)試器(如 WinDbg)調(diào)試 Virbox 反外掛引擎自身,使各種調(diào)試器失效,對(duì)逆向分析過程造成了極大阻礙。
? 內(nèi)存保護(hù)
黑客在分析軟件時(shí),除了調(diào)試之外,還會(huì)通過內(nèi)存搜索(如使用 Cheating Engine)等方式定位關(guān)鍵數(shù)據(jù)的內(nèi)存,另一方面,大部分外掛或是盜版補(bǔ)丁會(huì)通過另外的進(jìn)程修改內(nèi)存,Virbox 反外掛引擎通過驅(qū)動(dòng)級(jí)內(nèi)存保護(hù),防止其它進(jìn)程讀寫、修改被保護(hù)的進(jìn)程,保證了被保護(hù)進(jìn)程的安全。
? 反注入
修改進(jìn)程內(nèi)存,除了跨進(jìn)程的內(nèi)存訪問之外,還可以通過注入 Dll 或者 ShellCode 的方式進(jìn)行,Virbox 反外掛引擎通過內(nèi)存保護(hù)和監(jiān)控模塊加載的方式攔截了絕大部分注入方式,并配合內(nèi)存特征檢測(cè)功能,攔截非法模塊。
? 特征掃描
反外掛引擎可以檢測(cè)內(nèi)存特征、窗口特征、模塊特征、驅(qū)動(dòng)特征(如 HideToolz, PCHunter, StrongOD 等)
安全問題一定要引起重視,反外掛本身就是一個(gè)伴隨游戲全生命周期的問題,你所碰到的問題也是其它游戲開發(fā)商碰到的問題,你先行一步,解決好反外掛的問題,可以領(lǐng)先其它開發(fā)商一大步。
雯/漫畫
2023年杭州亞運(yùn)會(huì),“電競(jìng)項(xiàng)目”首次被正式列為比賽項(xiàng)目之一,標(biāo)志著電子游戲已成為官方認(rèn)可的綜合性體育競(jìng)技項(xiàng)目。然而,素有“作弊程序”之稱的游戲外掛則一直是影響競(jìng)技公平性的一個(gè)神秘存在。2023年11月底,央視新聞?lì)l道報(bào)道了全國(guó)首例“AI外掛”案的破獲過程,再度引發(fā)人們對(duì)于游戲外掛的關(guān)注,特別是對(duì)于互聯(lián)網(wǎng)深度監(jiān)管提出的挑戰(zhàn)。
記者發(fā)現(xiàn),隨著人工智能算法技術(shù)的發(fā)展,已形成黑灰產(chǎn)業(yè)的游戲外掛,功能性和隱蔽性也在不斷加強(qiáng)。有關(guān)案例表明,司法實(shí)踐中,對(duì)于制售游戲外掛的行為所涉嫌的罪名有諸多爭(zhēng)論。游戲外掛究竟為何物?制售游戲外掛可能涉嫌哪些罪名?對(duì)此,記者就相關(guān)問題采訪了有關(guān)專家學(xué)者。
花樣繁多的“功力升級(jí)”外掛
2003年12月18日,當(dāng)時(shí)的新聞出版總署、信息產(chǎn)業(yè)部等部門聯(lián)合發(fā)布《關(guān)于開展對(duì)“私服”、“外掛”專項(xiàng)治理的通知》(下稱《通知》),對(duì)“私服”“外掛”違法行為進(jìn)行了基本定義,即指未經(jīng)許可或授權(quán),破壞合法出版、他人享有著作權(quán)的互聯(lián)網(wǎng)游戲作品的技術(shù)保護(hù)措施、修改作品數(shù)據(jù)、私自架設(shè)服務(wù)器、制作游戲充值卡(點(diǎn)卡),運(yùn)營(yíng)或掛接運(yùn)營(yíng)合法出版、他人享有著作權(quán)的互聯(lián)網(wǎng)游戲作品,從而謀取利益、侵害他人利益。《通知》明確上述行為屬于非法互聯(lián)網(wǎng)出版活動(dòng),應(yīng)依法予以嚴(yán)厲打擊。有觀點(diǎn)指出,“外掛”并非法律名詞,而是行業(yè)術(shù)語(yǔ),以網(wǎng)絡(luò)游戲外掛為例,實(shí)際上是通過修改游戲客戶端內(nèi)存或者網(wǎng)絡(luò)數(shù)據(jù)包,讓玩家用最少的時(shí)間和金錢實(shí)現(xiàn)“功力升級(jí)”“過關(guān)斬將”等目的的程序。隨著游戲產(chǎn)業(yè)和相關(guān)技術(shù)原理的迅猛發(fā)展,外掛違法行為呈現(xiàn)多樣化的趨勢(shì),司法實(shí)踐在定罪定性時(shí)也有所差異。
對(duì)于“加快游戲進(jìn)度,可讓游戲角色實(shí)現(xiàn)自動(dòng)‘跑位’‘刷副本’‘做任務(wù)’”功能的外掛,在黃某提供侵入、非法控制計(jì)算機(jī)信息系統(tǒng)程序一案的一審刑事判決書中,湖北省荊門市掇刀區(qū)法院認(rèn)為,制售這類外掛的行為構(gòu)成提供非法控制計(jì)算機(jī)信息系統(tǒng)程序罪。對(duì)于修改游戲客戶端數(shù)據(jù),制售能夠?qū)崿F(xiàn)游戲原本不具備的“瞬移”“透視”等功能的外掛,上海市徐匯區(qū)法院經(jīng)審判認(rèn)定被告人構(gòu)成提供非法控制計(jì)算機(jī)信息系統(tǒng)程序罪。
然而,也有觀點(diǎn)認(rèn)為該類游戲外掛行為構(gòu)成非法經(jīng)營(yíng)罪或侵犯著作權(quán)罪。通過修改服務(wù)器數(shù)據(jù),可以讓玩家實(shí)現(xiàn)游戲原本不具備的“透視”“瞬移”“瞄準(zhǔn)”功能的外掛,如在對(duì)戰(zhàn)時(shí)獲取敵對(duì)玩家隱藏的位置坐標(biāo)等,這類外掛往往可以幫助使用者提高對(duì)戰(zhàn)獲勝率。對(duì)此,某地司法人員在辦理何某、王某銷售、運(yùn)營(yíng)“雞腿”外掛一案時(shí)認(rèn)為,涉案外掛程序“雞腿”通過破譯并擅自使用網(wǎng)絡(luò)游戲的通訊協(xié)議、修改內(nèi)存數(shù)據(jù)等,實(shí)現(xiàn)了游戲本不具有的“透視眼”等功能,讓使用者輕松取得游戲勝利。犯罪嫌疑人未經(jīng)許可,發(fā)行該外掛程序,損害了游戲著作權(quán)人的利益、信譽(yù)以及游戲的正常市場(chǎng)秩序,涉嫌侵犯著作權(quán)罪。
北京己任律師事務(wù)所合伙人呂沛表示:“外掛的類型很多,技術(shù)原理和對(duì)游戲本身造成的影響損害不盡相同,這也是為什么實(shí)踐中對(duì)制售外掛的定罪一直存有爭(zhēng)議。”
司法之網(wǎng)越織越密
那么,對(duì)于制作、銷售游戲外掛的行為,在具體司法實(shí)踐中如何看待?江蘇省昆山市檢察院檢察官徐忠義曾對(duì)游戲外掛可能涉及的刑事罪名作了裁判案例梳理,“多年來,制售游戲外掛案件應(yīng)適用何種罪名的問題長(zhǎng)期困擾著司法實(shí)踐,目前主流觀點(diǎn)有非法經(jīng)營(yíng)罪、侵犯著作權(quán)罪、破壞計(jì)算機(jī)信息系統(tǒng)罪及提供侵入、非法控制計(jì)算機(jī)信息系統(tǒng)程序、工具罪等幾種。”
對(duì)此,西南政法大學(xué)知識(shí)產(chǎn)權(quán)法教研室副主任、副教授康添雄特別指出,“在2021年3月1日刑法修正案(十一)施行前,直接適用侵犯著作權(quán)罪對(duì)外掛行為進(jìn)行刑法規(guī)制存在法律條文解釋上的困難,認(rèn)定侵犯著作權(quán)罪時(shí)只能適用第(一)項(xiàng),但外掛程序往往又僅復(fù)制游戲作品中的部分?jǐn)?shù)據(jù),并不復(fù)制其核心內(nèi)容,不構(gòu)成對(duì)游戲作品的實(shí)質(zhì)性相似。”他表示,如今已不再具有前述法律解釋上的問題,可直接適用刑法第217條第(六)項(xiàng)的規(guī)定。“技術(shù)的更新迭代速度快,考慮到法律穩(wěn)定性的要求,在對(duì)外掛行為進(jìn)行法律規(guī)制時(shí)不宜根據(jù)具體技術(shù)的不同進(jìn)行分類定性。唯有適用侵犯著作權(quán)罪才能準(zhǔn)確地反饋規(guī)制外掛所保護(hù)的法益——知識(shí)產(chǎn)權(quán)。”
結(jié)合有關(guān)案例,記者看到,發(fā)生在2021年3月1日后的部分制售外掛行為,在司法實(shí)踐中并未以侵犯著作權(quán)罪定罪。
上海市檢察院知識(shí)產(chǎn)權(quán)檢察辦公室副主任陸川告訴記者,關(guān)鍵是如何理解刑法第217條第(六)項(xiàng)中的“技術(shù)措施”。她認(rèn)為,這里的“技術(shù)措施”應(yīng)當(dāng)是指用于防止、限制未經(jīng)權(quán)利人許可瀏覽、欣賞作品、表演、錄音錄像制品或者通過信息網(wǎng)絡(luò)向公眾提供作品、表演、錄音錄像制品的有效技術(shù)、裝置和部件。“實(shí)踐中許多游戲外掛所避開的‘技術(shù)措施’,作用并非是為了限制他人接觸,畢竟游戲開發(fā)者的初衷是讓更多人下載使用客戶端。所以不宜認(rèn)定為侵犯著作權(quán)罪。”
陸川表示,基于此,各地可能會(huì)傾向依據(jù)其涉嫌擾亂市場(chǎng)經(jīng)濟(jì)秩序等權(quán)益,在定性時(shí)選擇計(jì)算機(jī)類罪名,如提供侵入、非法控制計(jì)算機(jī)信息系統(tǒng)程序、工具罪。
“因此,定罪時(shí)需要考慮甄別游戲外掛繞過的技術(shù)保護(hù)措施是否屬于為保護(hù)著作權(quán)或有關(guān)權(quán)利而設(shè)置的保護(hù)措施。如果有些技術(shù)措施與保護(hù)著作權(quán)并無關(guān)聯(lián),例如只是通訊加密技術(shù)用來修改數(shù)據(jù)包,可能不宜直接認(rèn)定為侵犯著作權(quán)罪。”呂沛補(bǔ)充道。
全方位扼制游戲外掛惡性發(fā)展
包括AI外掛等新型外掛在內(nèi)的多種外掛對(duì)游戲產(chǎn)品運(yùn)營(yíng)造成一定影響,可能損害到開發(fā)者和其他用戶的利益,容易滋生違法犯罪。那該如何限制、打擊游戲外掛違法行為呢?
記者從騰訊旗下的《王者榮耀》數(shù)據(jù)安全部門發(fā)布的信息獲悉,目前作為游戲開發(fā)和運(yùn)營(yíng)者,其已通過進(jìn)行反作弊系統(tǒng)核查、加強(qiáng)外掛的實(shí)時(shí)檢測(cè)能力、訓(xùn)練局內(nèi)作弊行為識(shí)別模型、優(yōu)化反外掛智能監(jiān)測(cè)方案等來屏蔽外掛樣本,并通過公告封禁賬號(hào)、舉報(bào)移送線索等來打擊外掛行為。
對(duì)此,北京理工大學(xué)智能科技法律研究中心研究員王磊表示,游戲開發(fā)者應(yīng)當(dāng)重視新技術(shù)在治理外掛中的重要作用,持續(xù)關(guān)注實(shí)踐中出現(xiàn)的新型外掛作弊機(jī)制。此外,還應(yīng)考慮將人工智能和機(jī)器學(xué)習(xí)技術(shù)融入反作弊系統(tǒng)中,以提高識(shí)別新型和復(fù)雜外掛行為的能力。
針對(duì)外掛行為司法適用存在爭(zhēng)議的情況,康添雄則建議,立法部門可對(duì)外掛行為定性進(jìn)行官方解釋。“此外,刑法作為強(qiáng)制性法律規(guī)范,應(yīng)當(dāng)堅(jiān)守刑法適用的謙抑性原則,需嚴(yán)格審查相關(guān)外掛行為是否具有刑法上的應(yīng)受處罰性。”
王磊結(jié)合近年來涉外掛案件的審判情況,提出在數(shù)字經(jīng)濟(jì)發(fā)展背景下,要慎重適用刑法規(guī)制手段,提議可探索通過民刑結(jié)合、民事侵權(quán)的方式實(shí)現(xiàn)各方權(quán)益平衡的最佳實(shí)踐。
“除了刑事維權(quán)路徑外,類似行為也可以用反不正當(dāng)競(jìng)爭(zhēng)法進(jìn)行規(guī)制,幫權(quán)利人制止侵權(quán)并獲得一定的經(jīng)濟(jì)損害賠償。”呂沛表示,各方應(yīng)多管齊下,綜合運(yùn)用技術(shù)手段和法律手段打擊游戲外掛,引導(dǎo)更多人更全面地看待游戲產(chǎn)業(yè)的深層次價(jià)值,促進(jìn)游戲行業(yè)繁榮健康發(fā)展。
法條鏈接
《中華人民共和國(guó)刑法》第二百一十七條【侵犯著作權(quán)罪】以營(yíng)利為目的,有下列侵犯著作權(quán)或者與著作權(quán)有關(guān)的權(quán)利的情形之一,違法所得數(shù)額較大或者有其他嚴(yán)重情節(jié)的,處三年以下有期徒刑,并處或者單處罰金;違法所得數(shù)額巨大或者有其他特別嚴(yán)重情節(jié)的,處三年以上十年以下有期徒刑,并處罰金:
……(六)未經(jīng)著作權(quán)人或者與著作權(quán)有關(guān)的權(quán)利人許可,故意避開或者破壞權(quán)利人為其作品、錄音錄像制品等采取的保護(hù)著作權(quán)或者與著作權(quán)有關(guān)的權(quán)利的技術(shù)措施的。
第二百八十五條第三款【提供侵入、非法控制計(jì)算機(jī)信息系統(tǒng)程序、工具罪】提供專門用于侵入、非法控制計(jì)算機(jī)信息系統(tǒng)的程序、工具,或者明知他人實(shí)施侵入、非法控制計(jì)算機(jī)信息系統(tǒng)的違法犯罪行為而為其提供程序、工具,情節(jié)嚴(yán)重的,依照前款的規(guī)定處罰。
來源:檢察日?qǐng)?bào)