Unity3D現在很火。應用得場景很多。那麼針對unity發布的程序如何加密呢?
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版本。
加密例子: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開發者帳號,註冊後登錄VirboxLM即可進行授權碼的生成和管理。可聯繫深思數盾定製SDK,做加密及授權的開發。