外掛這個事情要追溯到 2000 年。當年星際爭霸的開全圖,CS 的透視、穿墻等,讓游戲完全失去公平競技性。當時反外掛的概念也呼之欲出。而后隨著 PC 端網(wǎng)絡游戲的崛起,就很少要有人再去玩或者談起這些游戲,但是游戲外掛卻跟隨時代的腳步而不斷前進。
游戲外掛讓開發(fā)商很無奈
第一,外掛泛濫成災,最直接的受害者是開發(fā)人員,不但知識產(chǎn)權(quán)被侵害,還得疲于奔命地應付各種外掛。
第二,外掛一旦導致游戲失衡,不管怎么努力,都無法擋住產(chǎn)品口碑變得越來越差,玩家不斷流失。
第三,外掛往往會捆綁木馬、植入廣告等,存在盜取游戲賬號、誘騙用戶等安全問題。
第四,所有的現(xiàn)象交織在一起,導致了游戲收入不斷萎縮,游戲公司生存狀況惡劣。
外掛技術(shù)與游戲安全性分析
抵御逆向分析
除了少數(shù)通用性外掛(如鍵盤模擬外掛、通用加速掛)外,絕大部分外掛在制作前均需動態(tài)調(diào)試和靜態(tài)分析游戲邏輯和數(shù)據(jù),找到關(guān)鍵邏輯和數(shù)據(jù)的位置,才能對游戲進行修改,因此反調(diào)試和保護游戲邏輯是抵御游戲外掛產(chǎn)生的強有力的方式。
阻止外掛入侵
一但游戲關(guān)鍵邏輯與數(shù)據(jù)被黑客分析完成,接下來黑客會通過編程對游戲客戶端進行修改,修改游戲進程常常通過一些系統(tǒng)函數(shù)如 ReadProcessMemory,WriteProcessMemroy ,或者通過向游戲進程注入 dll 等方式修改游戲內(nèi)存,因此保護游戲內(nèi)存和惡意模塊掃描是進一步防止外掛和被動檢查外掛的有效措施。
游戲反外掛先行一步
Virbox 反外掛系統(tǒng)針對游戲安全問題,采用靜態(tài)保護和動態(tài)保護相結(jié)合的方式,抵御和打擊外掛,為端游保駕護航,目前僅支持 Windows 系統(tǒng)。
靜態(tài)保護(Virbox Protector)
Virbox Protector 是深思自主研發(fā)的虛擬機外殼,用于保護游戲的代碼邏輯,強大的虛擬機保護以及為 Unity 游戲設(shè)計的獨特的 Unity3D 保護,對游戲的逆向分析造成極大的阻礙,有效遏制外掛的產(chǎn)生。
? 代碼邏輯保護
現(xiàn)代反編譯工具日益強大,即使是 C/C++ 這類靜態(tài)語言編譯后的程序,也能將代碼還原到與源代碼相差無幾。沒有代碼保護,游戲客戶端的代碼邏輯暴露,很容易被黑客發(fā)現(xiàn)攻擊的位置,使外掛的編寫成本變得很低。
Virbox Protector 可以通過混淆、虛擬機、代碼加密等方式對游戲中指定的函數(shù)進行保護,保護后的代碼無法自動還原,黑客分析混淆和虛擬化的指令需要超過原先幾十上百倍的時間。對游戲客戶端的關(guān)鍵函數(shù)進行保護,每次客戶端更新,黑客都需要大量的時間重新分析被保護的代碼。
? 內(nèi)存校驗
絕大部分外掛的高級功能,都采用“內(nèi)存補丁”的方式對游戲模塊進行修改,Virbox Protector 帶有內(nèi)存校驗功能,能對游戲代碼進行校驗,防止被打補丁。(該功能目前不支持 Unity3D 游戲)
Unity3D 保護
Unity 游戲采用 C# 編寫,相比于 C/C++ 開發(fā)的游戲,Unity 游戲更容易被黑客分析,使用 DnSpy、Reflector 等工具可以直接反編譯 Assembly-CSharp.dll 中的代碼,游戲代碼中的變量與函數(shù)名清晰可見。
Virbox Protector 對 Assembly-CSharp.dll 中的方法都進行了加密,只有在該方法運行編譯為匯編代碼才解密,黑客無法通過 Dump 出原始代碼。
動態(tài)保護(Virbox 反外掛引擎)
Virbox 反外掛引擎是一款驅(qū)動級進程保護系統(tǒng)。該系統(tǒng)結(jié)合了主動防御(反調(diào)試、內(nèi)存保護、反注入、Hook 檢測等)和被動防御(窗口檢測、內(nèi)存特征掃描等),動態(tài)地保護游戲進程。Virbox 反外掛引擎的主要功能如下:
? 反調(diào)試
編寫外掛或者盜版補丁,首先要做的是使用調(diào)試器(如 OllyDbg、x64dbg、Windbg、 Cheating Engine 等)調(diào)試軟件進程,分析關(guān)鍵代碼邏輯和數(shù)據(jù)。Virbox 反外掛引擎對所保護的進程進行調(diào)試檢測,并防止內(nèi)核調(diào)試器(如 WinDbg)調(diào)試 Virbox 反外掛引擎自身,使各種調(diào)試器失效,對逆向分析過程造成了極大阻礙。
? 內(nèi)存保護
黑客在分析軟件時,除了調(diào)試之外,還會通過內(nèi)存搜索(如使用 Cheating Engine)等方式定位關(guān)鍵數(shù)據(jù)的內(nèi)存,另一方面,大部分外掛或是盜版補丁會通過另外的進程修改內(nèi)存,Virbox 反外掛引擎通過驅(qū)動級內(nèi)存保護,防止其它進程讀寫、修改被保護的進程,保證了被保護進程的安全。
? 反注入
修改進程內(nèi)存,除了跨進程的內(nèi)存訪問之外,還可以通過注入 Dll 或者 ShellCode 的方式進行,Virbox 反外掛引擎通過內(nèi)存保護和監(jiān)控模塊加載的方式攔截了絕大部分注入方式,并配合內(nèi)存特征檢測功能,攔截非法模塊。
? 自保護
Virbox 反外掛引擎有心跳檢測功能,檢測 Virbox 反外掛引擎自身是否被摘除,并支持與軟件本身進行強綁定,如果使用 Virbox 反外掛引擎 SDK 版,強烈建議使用 Virbox Protector 加強 Virbox 反外掛引擎自保護。
? 特征掃描
Virbox 反外掛引擎可以檢測內(nèi)存特征、窗口特征、模塊特征、驅(qū)動特征(如 HideToolz, PCHunter, StrongOD 等),并且可以為開發(fā)商自定義特征庫。
安全問題一定要引起重視,反外掛本身就是一個伴隨游戲全生命周期的問題,你所碰到的問題也是其它游戲開發(fā)商碰到的問題,你先行一步,解決好反外掛的問題,可以領(lǐng)先其它開發(fā)商一大步。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!