前言
AIS3 結束了,繼續寫這個系列
這篇會介紹一些酷酷的工具像是 UnityExplorer、AssetStudio
MelonLoader + UnityExplorer
除了乖乖用 IL2CPPDumper 反編譯以外,還有更粗暴的選擇:MOD
甭管他是 IL2CPP 還是 Mono,UnityExplorer 直接一刀殺進去。
MelonLoader 搭配上 UnityExplorer 實在是非常強大,建議看完這篇直接上手體驗,用過都說讚。
安裝方法
先安裝 MelonLoader,選擇遊戲執行檔後按 install 就好,非常銀杏(建議都用v0.5.X)
失敗的話也可以換成其他的 MOD Loader 試試看
安裝完成後執行遊戲,除了遊戲畫面還會多出現一個視窗
接下來再安裝 UnityExplorer,Release 找到對應檔案之後解壓會是這兩個資料夾
直接複製到遊戲資料夾就好了
接下來再執行遊戲就會看到酷酷的視窗
如何使用
最主要就是兩個功能
- Explore Scene
- Hook
Explore Scene
既然叫做 Unity Explorer,具體是怎麼個 Explore 法呢?
可以看到當前這個 Scene 有哪些 GameObject
當然也可以透過 Load Scene 直接到其他的場景
對著好奇的 Object 點一下,就可以查看它的詳細資料
針對這個 Object 就有這些事情可以做
- 複製/破壞
- 改變 Active State
- 改變 Transform
- 改變 Tag/Layer/Flag
- 新增子物件/Component
對著 Component 點一下,也可以進一步查看或是修改
像這邊 Grounded、timer、self 三個變數都可以去做修改
也可以直接呼叫裡面的 Function
例如這邊我把紅球的 self 替換成黃球的 prefab
就可以有這種效果
看到這裡,你可能會覺得這是標題詐騙,怎麼都在玩甚麼 Object 說好的 Explore 呢
其實用 Freecam 功能就可以
網路上有些”拆包”或是”開發者視角”相關的影片應該有很大一部分就是用這個 Freecam 功能
C# Console & Hook
UnityExplorer 真正的強大之處是可以執行自己寫的 C# Code 跟輕鬆做到 Hook
這是用 C# Console 執行以下程式碼的結果,可以得到福壽螺卵
GameObject hori = GameObject.Find("Horizontal"); hori.GetComponent<Rigidbody>().useGravity = false;
當然這只是個演示,拿來做 Inspector 就能做到的事還是大材小用了
Hook 功能也是特別好用,這邊 Hook 掉 OncollisionEnter
只要發生碰撞就把對方 GameObject Destroy 掉
UnityEngine.Object.Destroy(__0.gameObject);
後記
之後應該會繼續寫靶機 Writeup(Hopefully),Unity 第四篇我想找實際的案例所以之後再說 差低