Unity3D程序的安全問題
代碼安全問題
unity3d 程序的核心程序集文件 assembly-csharp.dll 是標準的 .net 文件格式,附帶了方法名、類名、類型定義等豐富的元數據信息,使用 dnspy 等工具可以輕易地將其反編譯和篡改,代碼邏輯、類名和方法名等一覽無余。代碼邏輯一但被反編譯,很容易滋生各種類型的外掛,破壞游戲平衡,如果代碼邏輯中存在漏洞,也容易被挖掘和利用,可能對開發商造成無法預料的損失。
資源安全問題
Unity3D 程序在編譯打包階段會通過 Unity 編輯器將資源打包成 Asset Bundle 文件,Asset Bundle 是一種公開的壓縮類文件格式,使用 Asset Studio 等工具可以對其解析、展示和提取。如果不保護,很容易被竊取進行二次開發。對于網絡游戲,還可以將一些場景資源的材質屬性改為透明,實現透視效果。
需求一:安卓U3D-APK的加密保護
兩種編譯方式:ill2cpp和mono。不同的編譯方式,加密方式也不同。將android Unity3D apk解壓,查看lib庫目錄,若是lib目錄下含有libmono.so庫,那么說明Unity3D編譯選項時選擇的是mono,此時需要對apk整個目錄進行加殼。
若是lib目錄下含有libil2cpp.so庫,那么說明Unity3D編譯選項時選擇的是IL2CPP,此時需要對lib目錄下的so庫進行保護。
加密工具
Virbox Protector 1.6版本。試用下載:https://shell.virbox.com/apply.html
加密例子:angrybots5.5.3.apk(編譯選項:mono)
加密過程
-
將angrybots5.5.3.apk導入VirboxProtector
-
設置加密選項和資源加密
-
開始保護
加殼成功后會生成ssp.apk,然后重新對加殼后的ssp.apk進行簽名打包,才能正常安裝。
加密效果
代碼加密效果
加密前代碼反編譯效果
加密后代碼反編譯效果
資源加密效果對比
需求二:控制設備程序的授權使用
解決方案1:精銳5加密鎖
方案簡介
精銳5加密鎖是一款USB加密鎖,安卓設備上必須能支持插USB設備,精銳5可以控制軟件的使用時間、次數、功能模塊等。拔掉加密鎖,設備則無法運行U3D的程序。
解決問題
-
防止隨意拷貝軟件
-
限制軟件使用時間
-
限制軟件使用次數
如何使用
精銳5加密鎖可配合Virbox Protector一起使用,一方面做代碼及資源加密,同時做軟件的授權管控。同時精銳5加密鎖也提供了SDK,可快速實現寫鎖的授權,不需要做代碼開發。全程使用工具操作加密及寫鎖。只需要到深思數盾商城購買一套開發套件即可開始測試。
解決方案2:Smart License
方案簡介
Smart License支持安卓及ARM平臺下的程序授權控制,使用形式為授權碼(16位字母和數字),可快速實現一碼一機和一碼多機方案。同時可快速實現軟件的限時及功能模塊的限制使用。
?功能特點
-
綁定硬件,防止拷貝
經過授權的設備會生成本地緩存文件,和設備硬件綁定,有效防止通過拷貝文件的方式盜用授權
-
授權智能化
聯通授權激活、使用情況、設備信息的壁壘,綜合匯總為開發者提供詳實的經營數據,輔助開發者執行營銷策略,改善產品
-
授權自動化
授權的自動激活及自動恢復減少開發者的管理工作,降低產品推廣過程中的支持工作量,提升產品的體驗。
-
可視化數據展板
可視化數據展現讓開發者掌控授權使用情況
-
支持廣泛,應用靈活
支持硬件產品包括(不限于)華為海思、大華、海康螢石等智能攝像頭;支持聯網或不聯網的設備上使用
如何使用
Smart License提供免費試用,首先需要注冊一個Virbox LM開發者賬號(https://developer.lm.virbox.com/),注冊后登錄VirboxLM即可進行授權碼的生成和管理。可聯系深思數盾定制SDK,做加密及授權的開發。