在2023年這個游戲大年中,諸多熱門大作涌現,作為世界級IP哈利哈利·波特的衍生游戲——《霍格沃茨之遺》毫無懸念地成為2023年游戲圈的首款爆款作品,斬獲了一眾玩家的青睞。
在眾多光環的加持下,《霍格沃茨之遺》很快被著名游戲破解組織盯上,并揚言“會在十天內破解它并將其傳播出去,每個人都能免費玩到這款游戲。”
海外破解組織揚言“十天之內破解”《霍格沃茨之遺》
隨后,《霍格沃茨之遺》的破解版流出并大肆傳播,對于一款剛剛發售的游戲,這樣的“宣言”無疑會對游戲銷量造成嚴重打擊,游戲一旦被破解,將面臨著顆粒無收的慘狀。
事實上,游戲面臨的破解問題,一直以來都是懸在廠商頭上的“達摩克利斯之劍”。本文將以 Unity 引擎游戲為例,結合實際案例,為大家詳細分析端游面臨的破解問題以及解決方案。
■ 符號文件的提取風險
對于 il2cpp 類型的 Unity 程序,在 global-metadata.dat 里面會存儲程序所有的類名和方法名。
如果不加密直接暴露出去,攻擊者通過 iL2CppDumper 等工具的提取后并加以利用,這會非常有效的幫助攻擊者進行逆向分析。
FairGuard加密前后的dat文件進行符號提取對比
■ 核心代碼邏輯極易被反編譯或反匯編
對于Mono類型的Unity程序, 用戶編寫的代碼最終是在核心程序集文件 Assembly-CSharp.dll ,它是標準的 .NET 文件格式,附帶了方法名、類名、類型定義等豐富的元數據信息,使用 DnSpy 等工具可以輕易地將其反編譯和篡改,代碼邏輯、類名和方法名等和看C#源碼一樣方便。
DnSpy反編譯工具演示
對于il2cpp類型的Unity程序,用戶編寫的代碼最終會被編譯成本地代碼,相對上面的Assembly-CSharp.dll 安全一點。但對有經驗的逆向分析者來說,如果沒有進一步加密,通過 Ghidra 靜態分析工具就可以有效的分析。
■ 游戲資源易被提取的風險
Unity3D 程序在編譯打包階段會通過 Unity 編輯器將資源加包成 AssetBundle 文件,AssetBundle 是一種公開的壓縮類文件格式,使用 AssetStudio 等工具可以對其解析、展示和提取。
FairGuard加密前后的資源文件反編譯效果對比
針對端游面臨的被破解、資源泄露問題,FairGuard游戲加固采用精心構造的純native方案,構建了游戲引擎加固、防破解、反外掛、云保護、態勢感知五個角度的全場景保護方案,并在此基礎上新增了一系列特色功能:
● 反調試:檢測游戲進程是否為被調試狀態;
● 反抓幀:檢測游戲進程是否被抓幀工具抓幀;
● 反注入:檢測游戲是否被惡意模塊注入;
● 反多開:禁止游戲多開;
● 反虛擬機:禁止游戲在虛擬機中運行;
● 反惡意工具:檢測游戲運行環境是否存在惡意工具;
游戲體驗流暢,性能0影響
FairGuard加密進行了特殊構造,只在資源被使用時才會解密,因此釋放到緩存時還是處于加密狀態。加密方案只對核心關鍵位置做加密處理,對游戲加載速度、運行流程程度的幾乎沒有影響,實現了無感知。
零接入成本,自動化配置
FairGuard針對加固流程進行優化,構造了極簡加固模式,無需接入SDK,無需進行復雜的配置,僅需設置一個gamekey,運行一條命令行即可加固。
jar包工具跨平臺操作,直接對Windows可執行文件目錄一鍵加固