據統計,全球超過50%的遊戲都是使用Unity創作的,作為遊戲開發市場最大的遊戲引擎,Unity已經全面覆蓋了所有遊戲平台。
全球遊戲引擎市場份額。
由於規模龐大,Unity遊戲成為遊戲資源被破解導致的遊戲黑灰行業受打擊最嚴重的領域競品抄襲、智財權受損、遊戲內容劇透、篡改遊戲資源生產銷售外掛負面案例並不少見,給遊戲廠商的收入造成嚴重損失。
如何有效加密Unity資源,提高破解門檻,保護遊戲資源,成為遊戲廠商的必修課。
Halo 4 有剽竊的藝術材料(在 Halo 4 上; 在“星星”下)。
在Unity中,位於資源檔案下的內容可以稱為遊戲的資源,如:模型、材質、紋理、音訊、資料文件、場景等,Unity引擎中最常用的資源型別是資源包和資源。
對於 AssetBundle 資源,Fairguard 研發團隊對 Unity 引擎進行了黑盒分析,梳理了 AssetBundle 的載入機制和檔案結構。 已經開發了一組加密方案:
首先,通過分析assetbundle檔案的結構,找到asset檔案的核心檔案塊,對core檔案塊進行加密,然後在遊戲執行時,對Unity引擎assetbundle的載入時間進行埋藏,並在埋點解密核心檔案塊。該方案不僅滿足加密保護強度,還具有操作消耗低的特點解決了遊戲資源加密的行業痛點,具有以下優勢:
加密方案只對核心的關鍵位置進行加密,對遊戲的載入速度和執行過程幾乎沒有影響,從而達到不易察覺的目的。
加解密演算法自定義混淆,使破解者無法分析演算法,演算法流程圖如下:
Fairguard 演算法的流程圖。
通過Android SO打包或iOS靜態鉤子匯入的純原生方案,相容所有32位和64位指令集。
核心檔案塊很小,不會隨整體資產檔案大小而變化。 採用主流手機測試,一次解密300個資源檔案,額外解密時間小於10ms。
加密演算法是高度定製的混淆,混淆經過精心設計,在增加複雜性的同時兼顧效率和執行開銷。
Fairguard Unity 的資源加密解決方案支援 Android、iOS、PC 和三個平台。
使用起來非常簡單,只需執行乙個命令列即可完成整個遊戲資源的加密。
Fairguard Unity資源加密示意圖。
此外,Fairguard技術團隊還對Unity資源的載入原理進行了深入分析,找到了加解密的核心點,構建了資源隨機加密的方案和演算法。
Unity 資源資源檔案打包後,它將作為名為雜湊值的檔案存在於 Assets bin 資料路徑下,如下圖所示
原始資源檔案的二進位檔案如下圖所示,可以看到資源版本等資訊
Fairguard Unity Resources資源隨機加密後,沒有任何資訊可見,每次加密檔案的內容都完全不同(如下圖所示)。
此外,Fairguard針對Unity遊戲面臨的各種安全問題開發了成熟的解決方案,不僅對Unity資源進行加密,還使用mono dll或il2cpp對遊戲內指令碼進行加密。
同時,可以根據配置選項增加防破解、防修改、防變速、防除錯、防虛擬機器、反雲手機等功能進一步加強對遊戲的保護,有效解決遊戲面臨的各種安全問題。 目前,該解決方案已整合到多款熱門遊戲中,並驗證了出色的防護能力。