導航:首頁 > 源碼編譯 > unity防止反編譯

unity防止反編譯

發布時間:2022-09-10 06:51:16

A. 如何防止Unity3D代碼被反編譯

在Unity3D中,代碼會編譯到Assembly-CSharp.dll。基於以上兩點,代碼的保護有以下三種:
第一種是對代碼進行混淆,諸如混淆軟體CodeGuard、CryptoObfuscator、de4dot
第二種是對Assembly-CSharp.dll進行加密後,重新對mono進行編譯手動編譯mono,能防止反編譯

B. Unity3D代碼加密如何做到防止反編譯

Unity3D主要使用C#語法和開源mono運行開發商的代碼邏輯,所有代碼都不是編譯到EXE,而是位於{APP}\build\game_Data\Managed\Assembly-CSharp.dll。而且mono執行原理跟微軟.NET Framework兼容但是執行原理完全不一樣。傳統的.NET Framework加殼全部失效,因為Assembly-CSharp.dll不是PE格式的動態庫也不是.NET的動態庫,無法從 .NET Framework 載入,而是由mono.dll讀取 Assembly-CSharp.dll的裡面C#腳本解釋執行。
Virbox Protector 對 Assembly-CSharp.dll 做加密,無需手動加密 Assembly-CSharp.dll 代碼,自動編譯 mono, Assembly-CSharp.dll 代碼按需解密,只有調用到才會在內存解密,不調用不解密,黑客無法一次解出所有的代碼。一鍵加密代碼邏輯,無法反編譯,無法mp內存。不降低游戲幀數,自帶反黑引擎,驅動級別反調試,秒殺市面的所有調試器。
Uinty3D 主要的游戲資源都在 resources.assets ,游戲裡面所有放在 resources 文件夾下的東西都會放在這里,DSProtector工具可以對Unity軟體中的 .resS和resources等資源文件進行加密防止軟體或游戲中的資源被非法提取。

C. 如何防止Unity3D代碼被反編譯

在Unity3D中,代碼會編譯到Assembly-CSharp.dll。基於以上兩點,代碼的保護有以下三種:
第一種是對代碼進行混淆,諸如混淆軟體CodeGuard、CryptoObfuscator、de4dot
第二種是對Assembly-CSharp.dll進行加密後,重新對mono進行編譯。。
Virbox Protector可對Assembly-CSharp.dll直接進行加殼後,無需手動編譯mono,能防止反編譯

D. 如何防止Unity3D代碼被反編譯

如果是C#寫的,因為C#自己會被編譯成IL,所以基本沒辦法避免被反編譯。代碼混淆不知道能不能用。

E. 如何防止Unity3D代碼被反編譯

如果你沒有Unity的Source License,這個問題我覺得基本是無解的。
對於iOS平台AOT後Strip掉IL可能有用,但其他平台基本沒什麼辦法。還有一個思路是加殼,但這個至少在移動端上我沒試驗過,而且基本上也是道高一尺魔高一丈的事情。
還有一個是把一些關鍵代碼寫成Native插件,但這樣做我覺得完全就沒有使用Unity的優勢了,所以也不是很推薦。

如果是涉及網路的游戲,另一個相對有效的解決方案是把邏輯放在服務端,基本上不給客戶端Gameplay邏輯層的信任,客戶端只負責只發送具體操作。對於非在線游戲我確實沒看到什麼有效的解法。

個人覺得么,也不要太費勁折騰了,人家要搞你總是有辦法的。就算你不用Unity,真的高手是Native Binary一樣破給你看的。

F. 如何防止Unity3D代碼被反編譯

根本的解決辦法是:先對DLL加密,然後在Unity的源碼中載入程序DLL之前進行解密。

這就需要通過逆向工程獲得相應的Unity源碼或者是直接向Unity購買Source Code License。

G. 如何防止Unity3D代碼被反編譯

如果你沒有統一的源代碼,我認為這個問題基本上沒有解決。它可能會下降,而IL iOS平台是有用的在AOT,但基本上沒有其他平台。


另一個想法是包裝,但至少我沒有在移動終端上測試過,但基本上是邁出了一步。另一種方法是在本地插件中編寫一些關鍵代碼,但我不認為這是使用Unity的優點所以我並沒有真正推薦它。

直接使用GDB轉儲內存運行Android,不管你在內存末端加密的布局是相同的,但都是軟的。因此,這是一個本機插件(麻煩),或者簡單地加密和過濾80%個新的解決方案。

H. 如何防止Unity3D代碼被反編譯

在Unity3D中,代碼會編譯到Assembly-CSharp.dll。基於以上兩點,代碼的保護有以下三種:
第一種是對代碼進行混淆,諸如混淆軟體CodeGuard、CryptoObfuscator、de4dot
第二種是對Assembly-CSharp.dll進行加密後,重新對mono進行編譯。

Virbox Protector直接進行加殼後,無需手動編譯mono,能防止反編譯。

I. 如何防止Unity3D代碼被反編譯

在Unity3D中,代碼會編譯到Assembly-CSharp.dll。基於以上兩點,代碼的保護有以下三種:
第一種是對代碼進行混淆,諸如混淆軟體CodeGuard、CryptoObfuscator、de4dot
第二種是對Assembly-CSharp.dll進行加密後,重新對mono進行編譯
Virbox Protector直接進行加殼後,無需手動編譯mono,能防止反編譯

閱讀全文

與unity防止反編譯相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:766
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:841
安卓怎麼下載60秒生存 瀏覽:800
外向式文件夾 瀏覽:233
dospdf 瀏覽:428
怎麼修改騰訊雲伺服器ip 瀏覽:385
pdftoeps 瀏覽:490
為什麼鴻蒙那麼像安卓 瀏覽:733
安卓手機怎麼拍自媒體視頻 瀏覽:183
單片機各個中斷的初始化 瀏覽:721
python怎麼集合元素 瀏覽:478
python逐條解讀 瀏覽:830
基於單片機的濕度控制 瀏覽:496
ios如何使用安卓的帳號 瀏覽:880
程序員公園采訪 瀏覽:809
程序員實戰教程要多長時間 瀏覽:972
企業數據加密技巧 瀏覽:132
租雲伺服器開發 瀏覽:811
程序員告白媽媽不同意 瀏覽:333
攻城掠地怎麼查看伺服器 瀏覽:600