PC端游戲反外掛技術(shù)分析

外掛這個(gè)事情要追溯到 2000 年。當(dāng)年星際爭(zhēng)霸的開(kāi)全圖,CS 的透視、穿墻等,讓游戲完全失去公平競(jìng)技性。當(dāng)時(shí)反外掛的概念也呼之欲出。而后隨著 PC 端網(wǎng)絡(luò)游戲的崛起,就很少要有人再去玩或者談起這些游戲,但是游戲外掛卻跟隨時(shí)代的腳步而不斷前進(jìn)。

游戲外掛讓開(kāi)發(fā)商很無(wú)奈

第一,外掛泛濫成災(zāi),最直接的受害者是開(kāi)發(fā)人員,不但知識(shí)產(chǎn)權(quán)被侵害,還得疲于奔命地應(yīng)付各種外掛。

第二,外掛一旦導(dǎo)致游戲失衡,不管怎么努力,都無(wú)法擋住產(chǎn)品口碑變得越來(lái)越差,玩家不斷流失。

第三,外掛往往會(huì)捆綁木馬、植入廣告等,存在盜取游戲賬號(hào)、誘騙用戶(hù)等安全問(wèn)題。

第四,所有的現(xiàn)象交織在一起,導(dǎo)致了游戲收入不斷萎縮,游戲公司生存狀況惡劣。

外掛技術(shù)與游戲安全性分析

抵御逆向分析

除了少數(shù)通用性外掛(如鍵盤(pán)模擬外掛、通用加速掛)外,絕大部分外掛在制作前均需動(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ù)被黑客分析完成,接下來(lái)黑客會(huì)通過(guò)編程對(duì)游戲客戶(hù)端進(jìn)行修改,修改游戲進(jìn)程常常通過(guò)一些系統(tǒng)函數(shù)如 ReadProcessMemory,WriteProcessMemroy ,或者通過(guò)向游戲進(jìn)程注入 dll 等方式修改游戲內(nèi)存,因此保護(hù)游戲內(nèi)存和惡意模塊掃描是進(jìn)一步防止外掛和被動(dòng)檢查外掛的有效措施。

游戲反外掛先行一步

Virbox 反外掛系統(tǒng)針對(duì)游戲安全問(wèn)題,采用靜態(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++ 這類(lèi)靜態(tài)語(yǔ)言編譯后的程序,也能將代碼還原到與源代碼相差無(wú)幾。沒(méi)有代碼保護(hù),游戲客戶(hù)端的代碼邏輯暴露,很容易被黑客發(fā)現(xiàn)攻擊的位置,使外掛的編寫(xiě)成本變得很低。

Virbox Protector 可以通過(guò)混淆、虛擬機(jī)、代碼加密等方式對(duì)游戲中指定的函數(shù)進(jìn)行保護(hù),保護(hù)后的代碼無(wú)法自動(dòng)還原,黑客分析混淆和虛擬化的指令需要超過(guò)原先幾十上百倍的時(shí)間。對(duì)游戲客戶(hù)端的關(guān)鍵函數(shù)進(jìn)行保護(hù),每次客戶(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# 編寫(xiě),相比于 C/C++ 開(kāi)發(fā)的游戲,Unity 游戲更容易被黑客分析,使用 DnSpy、Reflector 等工具可以直接反編譯 Assembly-CSharp.dll 中的代碼,游戲代碼中的變量與函數(shù)名清晰可見(jiàn)。

Virbox Protector 對(duì) Assembly-CSharp.dll 中的方法都進(jìn)行了加密,只有在該方法運(yùn)行編譯為匯編代碼才解密,黑客無(wú)法通過(guò) 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)試

編寫(xiě)外掛或者盜版補(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ì)逆向分析過(guò)程造成了極大阻礙。

? 內(nèi)存保護(hù)

黑客在分析軟件時(shí),除了調(diào)試之外,還會(huì)通過(guò)內(nèi)存搜索(如使用 Cheating Engine)等方式定位關(guān)鍵數(shù)據(jù)的內(nèi)存,另一方面,大部分外掛或是盜版補(bǔ)丁會(huì)通過(guò)另外的進(jìn)程修改內(nèi)存,Virbox 反外掛引擎通過(guò)驅(qū)動(dòng)級(jí)內(nèi)存保護(hù),防止其它進(jìn)程讀寫(xiě)、修改被保護(hù)的進(jìn)程,保證了被保護(hù)進(jìn)程的安全。

? 反注入

修改進(jìn)程內(nèi)存,除了跨進(jìn)程的內(nèi)存訪問(wèn)之外,還可以通過(guò)注入 Dll 或者 ShellCode 的方式進(jìn)行,Virbox 反外掛引擎通過(guò)內(nèi)存保護(hù)和監(jiān)控模塊加載的方式攔截了絕大部分注入方式,并配合內(nèi)存特征檢測(cè)功能,攔截非法模塊。

? 自保護(hù)

Virbox 反外掛引擎有心跳檢測(cè)功能,檢測(cè) Virbox 反外掛引擎自身是否被摘除,并支持與軟件本身進(jìn)行強(qiáng)綁定,如果使用 Virbox 反外掛引擎 SDK 版,強(qiáng)烈建議使用 Virbox Protector 加強(qiáng) Virbox 反外掛引擎自保護(hù)。

? 特征掃描

Virbox 反外掛引擎可以檢測(cè)內(nèi)存特征、窗口特征、模塊特征、驅(qū)動(dòng)特征(如 HideToolz, PCHunter, StrongOD 等),并且可以為開(kāi)發(fā)商自定義特征庫(kù)。

安全問(wèn)題一定要引起重視,反外掛本身就是一個(gè)伴隨游戲全生命周期的問(wèn)題,你所碰到的問(wèn)題也是其它游戲開(kāi)發(fā)商碰到的問(wèn)題,你先行一步,解決好反外掛的問(wèn)題,可以領(lǐng)先其它開(kāi)發(fā)商一大步。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2019-10-30
PC端游戲反外掛技術(shù)分析
外掛這個(gè)事情要追溯到 2000 年。當(dāng)年星際爭(zhēng)霸的開(kāi)全圖,CS 的透視、穿墻等,讓游戲完全失去公平競(jìng)技性。當(dāng)時(shí)反外掛的概念也呼之欲出。

長(zhǎng)按掃碼 閱讀全文