Flydragon's Blog
645 words
3 minutes
Unity 逆向入門第三篇:UnityExplorer

visitor badge

前言#

AIS3 結束了,繼續寫這個系列
這篇會介紹一些酷酷的工具像是 UnityExplorerAssetStudio

MelonLoader + UnityExplorer#

除了乖乖用 IL2CPPDumper 反編譯以外,還有更粗暴的選擇:MOD
甭管他是 IL2CPP 還是 Mono,UnityExplorer 直接一刀殺進去。

MelonLoader 搭配上 UnityExplorer 實在是非常強大,建議看完這篇直接上手體驗,用過都說讚。

安裝方法#

先安裝 MelonLoader,選擇遊戲執行檔後按 install 就好,非常銀杏(建議都用v0.5.X)
失敗的話也可以換成其他的 MOD Loader 試試看
alt text

安裝完成後執行遊戲,除了遊戲畫面還會多出現一個視窗

接下來再安裝 UnityExplorer,Release 找到對應檔案之後解壓會是這兩個資料夾
alt text

直接複製到遊戲資料夾就好了
alt text

接下來再執行遊戲就會看到酷酷的視窗 alt text

如何使用#

最主要就是兩個功能

  1. Explore Scene
  2. Hook

Explore Scene#

既然叫做 Unity Explorer,具體是怎麼個 Explore 法呢?

可以看到當前這個 Scene 有哪些 GameObject
當然也可以透過 Load Scene 直接到其他的場景
alt text

對著好奇的 Object 點一下,就可以查看它的詳細資料

針對這個 Object 就有這些事情可以做

  • 複製/破壞
  • 改變 Active State
  • 改變 Transform
  • 改變 Tag/Layer/Flag
  • 新增子物件/Component

alt text

對著 Component 點一下,也可以進一步查看或是修改
像這邊 Grounded、timer、self 三個變數都可以去做修改
也可以直接呼叫裡面的 Function
alt text

例如這邊我把紅球的 self 替換成黃球的 prefab
就可以有這種效果
alt text

看到這裡,你可能會覺得這是標題詐騙,怎麼都在玩甚麼 Object 說好的 Explore 呢
其實用 Freecam 功能就可以

alt text

網路上有些”拆包”或是”開發者視角”相關的影片應該有很大一部分就是用這個 Freecam 功能

C# Console & Hook#

UnityExplorer 真正的強大之處是可以執行自己寫的 C# Code 跟輕鬆做到 Hook

這是用 C# Console 執行以下程式碼的結果,可以得到福壽螺卵

GameObject hori = GameObject.Find("Horizontal"); hori.GetComponent<Rigidbody>().useGravity = false;

alt text 當然這只是個演示,拿來做 Inspector 就能做到的事還是大材小用了

Hook 功能也是特別好用,這邊 Hook 掉 OncollisionEnter
只要發生碰撞就把對方 GameObject Destroy 掉

UnityEngine.Object.Destroy(__0.gameObject);

alt text alt text

後記#

之後應該會繼續寫靶機 Writeup(Hopefully),Unity 第四篇我想找實際的案例所以之後再說 差低

Unity 逆向入門第三篇:UnityExplorer
https://flydragonw.github.io/posts/unity_reverse_3/
Author
FlyDragon
Published at
2024-08-12