導航:首頁 > 源碼編譯 > 反編譯unity腳本

反編譯unity腳本

發布時間:2022-07-14 00:04:40

『壹』 unity3d 反編譯後怎麼用

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

『貳』 如何將已經打包好的unity游戲反編譯為工程文件夾(不是提取資源,是直接反編譯成能用的工程文件夾)

首先想通過此方法完全復刻一個游戲工程,這是不可能的 不要想了

對於反編譯腳本的話
1、基於il2cpp編譯的 目前來說雖然可以 但是對於新手還是有點困難的
2、基於mono編譯的 可以把dll文件推到反編譯軟體比如ilspy即可

『叄』 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等資源文件進行加密防止軟體或游戲中的資源被非法提取。

『肆』 如何防止Unity3D代碼被反編譯

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

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

『伍』 如何防止Unity3D代碼被反編譯

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

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

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

『陸』 如何防止Unity3D代碼被反編譯

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


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

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

『柒』 unity webgl能反編譯嗎

可以的
加密原理(無需Unity源碼):

1. IDA Pro打開libmono.so, 修改mono_image_open_from_data_with_name為
mono_image_open_from_data_with_name_0,
2. 替換實現mono_image_open_from_data_with_name,
extern mono_image_open_from_data_with_name_0(...);
mono_image_open_from_data_with_name(...) {
MonoImage *img = mono_image_open_from_data_with_name_0(...);
//發現數據文件頭不是DLL前綴則解密 img->raw_data, 相應修改img->raw_data_len
return img;
}
3. 重新打包libmono.so; 替換Unity3D中的android下的版本.
4. 另外寫個加密的工具,植入構建環境(MonoDeveloper或VS,添加一個打包後Build Phase來加密DLL); (IOS下禁用JIT固採用AOT編譯,DLL中沒有邏輯代碼,所以無需操心);

『捌』 如何防止Unity3D代碼被反編譯

控制角色移動播放動作或者其他邏輯則需要給這個橘色節點綁定邏輯腳本,UNity支持多種腳本語言,在此是用JAVA腳本.
創建 腳本Assets --> Create ----> JavaScript 創建一個空的邏輯腳本,並將這個腳本綁定在主角對象身上,綁定方式是直接拖拽到主角節點即可。
對腳本的編寫:
類及介面主要參照幫助文檔,這里只介紹腳本基本結構和簡單示例:
每個腳本至少都有兩個函數: function Start() 可以認為是初始化 function Updata()則是每幀更新函數。
要實現對角色位置的控制移動首先要定義該角色,
首先 定義GameObject對象也就是要控制的目標: private var _MainRole:GameObject;;
在function Start() 函數中初始化該對象: inRole = GameObject.Find("MainRole"); // 從場景中查找到名叫"MainRole"的對象也就是主角。
在每幀更新時偵聽鍵盤事件,如果按鍵按下W則空對象向前移動
if(Input.GetKey(KeyCode.W))
{
_MainRole.transform.Translate( Vector3.forward * 0.05 );
}

至此,就已經完成按鍵控制角色移動的全部過程,運行游戲就可以用按鍵控制角色移動。

閱讀全文

與反編譯unity腳本相關的資料

熱點內容
java許可權系統源碼 瀏覽:163
androidmk編譯aidl 瀏覽:880
單片機取8位 瀏覽:994
如何在雲伺服器上安裝2s 瀏覽:7
怎麼把王者安卓號轉移到蘋果 瀏覽:779
思科密碼加密後怎麼登錄 瀏覽:591
安卓手機生態垃圾怎麼辦 瀏覽:113
fy187 瀏覽:597
python中文文字識別 瀏覽:882
日本蕾絲邊電影 瀏覽:796
斯坦福編譯原理講義 瀏覽:147
國外大尺度漏器官電影 瀏覽:433
玩具解壓神器怎麼做 瀏覽:299
安卓手機如何共存歌曲 瀏覽:426
簡單的游戲代碼源碼 瀏覽:346
金蝶伺服器怎麼改 瀏覽:595
h y p 6.vip 瀏覽:709
韓國戰爭電影十大巔峰之作 瀏覽:425
大尺度百合劇 瀏覽:112
為什麼要叫毒app 瀏覽:492