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