《Hull Rupture Playtest》快速閱讀精華
- 🚀 核心煩惱:遊戲中 Energy 能量數值無法直接修改,找到的數值只是 UI 顯示層,修改後會立即重置
- 💪 關鍵發現:遊戲使用 Unity IL2CPP 架構,能量以 Float 計算後轉換為整數顯示,需追蹤 XMM6 暫存器來源
- 🔑 技術重點:
- GameAssembly.dll+1374B03 為關鍵轉換點
- CVTSS2SD / CVTTSD2SI 指令將 Float 轉整數寫入顯示
- 需向上追蹤 RBX/XMM6 找到真實數值位址
- ⚠️ 風險聲明:使用 Cheat Engine 修改遊戲記憶體可能導致帳號封鎖或損壞存檔,請自行承擔風險並建議於離線模式測試
為什麼 Energy 數值修改無效?
我們實測後發現,《Hull Rupture Playtest》v0.8.6 的能量系統設計讓許多修改者碰壁。這款採用 Unity IL2CPP 架構的遊戲,其資源計算邏輯與傳統 Unity Mono 專案有顯著差異。
[![]()
👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app
玩家常見的困境是這樣的:無論使用 4 Bytes、Float、Double 或 Unknown Initial Value 掃描,都能找到與畫面顯示相符的 Energy 數值,但修改或凍結這些位址後,數值會在短暫變化後立即重置回原來的數量。這代表你找到的只是 UI 顯示層的複製品,而非遊戲內部真正的資源數值。
IL2CPP 架構分析與暫存器追蹤
透過「Find out what writes/accesses tdis address」功能,我們定位到 GameAssembly.dll 中的關鍵轉換程式碼:
- GameAssembly.dll+1374B03:
- CVTSS2SD XMM0,XMM6
- CVTTSD2SI EAX,XMM0
- MOV [RDI+00000080],EAX
複製代碼 這三行指令揭示了遊戲的數值處理邏輯:
- CVTSS2SD XMM0,XMM6:將 XMM6 暫存器中的單精度浮點數(Float)轉換為雙精度浮點數(Double),存入 XMM0
- CVTTSD2SI EAX,XMM0:將 XMM0 的雙精度浮點數截斷轉換為帶號整數,存入 EAX
- MOV [RDI+00000080],EAX:將 EAX 中的整數寫入記憶體位址 [RDI+80],這就是你在畫面上看到的數值
[![]()
關鍵在於:真正的能量數值存在於 XMM6 暫存器的來源,也就是 RBX 或更早的暫存器/記憶體位址,而非最終寫入 [RDI+80] 的這個顯示用整數。
進階追蹤方法建議
針對 IL2CPP 架構的這類保護機制,我們建議以下追蹤策略:
- 暫存器回溯追蹤
- 在 GameAssembly.dll+1374B03 設斷點
- 觀察 XMM6 的值從何而來(通常來自上一個 MOV 指令或計算結果)
- 向上追蹤至 RBX 或其他基底暫存器的載入點
- 結構分析
- RDI+80 是顯示數值的偏移量
- 嘗試掃描 RDI 基底位址附近的記憶體區域
- 尋找 Float 類型的能量最大值、回復速率等相關數值
- IL2CPP 專用工具
- 使用 IL2CPP Dumper 提取遊戲的類別結構
- 尋找 ResourceManager、EnergyComponent 等相關類別
- 透過靜態分析定位真實數值的欄位位址
- 指令掛鉤(Hook)
- 在 CVTSS2SD 指令前插入程式碼掛鉤
- 直接修改 XMM6 的值來影響最終顯示
- 需編寫 AOB(Array of Byte)腳本實現自動注入
以下廣告滑動後還有帖子內容
《Hull Rupture Playtest》能量修改常見問題Q&A
Q:為什麼 Double 掃描也找不到真實數值?
IL2CPP 編譯後的程式碼會將 Float 運算結果即時轉換,真實數值可能只在暫存器中存在極短時間,未持續存放於記憶體中供掃描捕捉。
Q:修改 [RDI+80] 的數值會有什麼效果?
只會改變畫面顯示,遊戲內部的實際能量並未改變。當遊戲下次更新能量時(如消耗或回復),會重新計算並覆蓋這個顯示值。
Q:IL2CPP 和 Mono 架構的修改難度差異?
IL2CPP 將 C# 編譯為原生機器碼,失去了 Mono 的元資料結構,使得直接定位變數位址更加困難,通常需要組合語言層級的分析。
Q:是否有其他資源可以嘗試修改?
除了 Energy 能量,建議同時嘗試掃描其他資源類型(如材料、貨幣),不同資源的保護強度可能有所差異。
Q:這款遊戲目前有現成的 Cheat Table 嗎?
截至本攻略撰寫時,Fearless Revolution 論壇上該請求尚未有回應解決方案。建議持續關注社羣討論或嘗試上述進階追蹤方法。
《Hull Rupture Playtest》重點回顧
- v0.8.6 版本的 Energy 能量採用 Float 計算、整數顯示的分離架構,直接掃描無法定位真實數值
- 關鍵突破口在於追蹤 GameAssembly.dll+1374B03 處的 XMM6/RBX 來源,而非最終寫入的顯示位址
- IL2CPP 架構需要結合暫存器分析、結構掃描或指令掛鉤等進階技術纔能有效修改
參考資料
|