快速閱讀精華
- 🔧 這是一份 天命2(Destiny 2) 的記憶體結構與偏移值資訊,適合進行 Cheat Engine 修改 與逆向工程研究的玩家
- 📦 內含完整的 Rust 程式碼結構定義,涵蓋玩家資料、血量、骨架、視野等核心偏移值
- ⚠️ 使用修改工具存在 帳號封鎖風險,建議僅用於單機學習或離線環境
- 💾 文末提供 ESP 輔助檔案下載點,包含編譯後的資源檔案
👉 GM後台版 遊戲 推薦 ⬇️⬇️⬇️ 快速玩各種二次元動漫手遊app
什麼是 Reversal、Structs 與 Offsets?
在玩遊戲修改或開發輔助工具時,你可能會常看到這幾個術語。簡單來說:
- Reversal(逆向工程):透過分析遊戲記憶體,找出變數存放的位置
- Structs(結構):定義資料在記憶體中的排列方式,像是「玩家物件從哪裡開始、血量在第幾個位址」
- Offsets(偏移值):從基底位址開始,要加上多少數字才能找到特定資料
這份資料就是天命2玩家社羣整理出來的「地圖」,告訴你遊戲裡各種關鍵數據藏在記憶體的哪個角落。
天命2 核心偏移值整理
底下整理這份資料中最常用的幾個全域指標,這些是尋找其他玩家資料的入口點:
| 偏移值名稱 | 十六進位位址 | 用途說明 | | WORLD_PTR | 0x318c998 | 世界物件基底指標 | | PLAYERS | 0x3aab448 | 玩家陣列起始位址 | | LOCAL_IDENTITY | 0x3aab450 | 本地玩家身份資訊 | | HANDLE_POOL | 0x2fb9200 | 物件句柄池管理 | | CHANNEL_MANAGER | 0x3dca498 | 頻道管理器(玩家列表相關) | | VIEW_PROJ | 0x3a4b860 | 視野與投影矩陣 | | FOV_ENCRYPTED_PTR | 0x3327c88 | 視野角度(加密指標) | | LOCAL_NAME_PTR | 0x3250d70 | 本地玩家名稱指標 |
玩家資料結構心得分享
想要讀取其他玩家的資訊,需要先理解 players 模組的結構:
pub mod players {
pub const STRIDE: u64 = 0x4C50; // 每個玩家資料間隔
pub const MAX_SLOTS: u64 = 32; // 最大玩家數量
pub const CONTAINER_ARRAY: u64 = 8; // 容器陣列偏移
}
這表示遊戲中最多支援 32 位玩家,每個玩家的資料區塊相隔 0x4C50 位元組。從 PLAYERS 基底位址開始,加上 CONTAINER_ARRAY 偏移,就能找到第一個玩家的資料入口。
單一玩家欄位偏移
| 欄位名稱 | 偏移值 | 說明 | | PLAYERDEF_HANDLE | 0x0004 | 玩家定義句柄 | | SOBJECT_HANDLE | 0x0084 | 場景物件句柄 | | REVIVE_TIMER | 0x0848 | 復活倒數計時 | | NAME_CIPHER | 0x09D4 | 名稱加密資料 | | TEAM_ID | 0x0A24 | 隊伍識別碼 | | HEALTH_HANDLE | 0x4620 | 血量組件句柄 | | SKEL_HANDLE | 0x4688 | 骨架組件句柄 | | EQUIPPED_SLOT | 0x4900 | 目前裝備武器欄位 | | LOCAL_POS_MARKER | 0x4920 | 本地位置標記 | | IDENTITY_KEY | 0x918 | 身份驗證金鑰 |
血量與骨架組件
找到 HEALTH_HANDLE 或 SKEL_HANDLE 後,還需要進一步整理組件內部結構:
血量組件(hp_component)
pub mod hp_component {
pub const SHIELD: u64 = 0x0B08; // 護盾值
pub const HEALTH: u64 = 0x0BA8; // 生命值
}
骨架組件(skeleton)
pub mod skeleton {
pub const ROOT_QUAT: u64 = 0xB0; // 根部旋轉四元數
pub const ROOT_POS: u64 = 0xC0; // 根部位置座標
pub const BONE_COUNT: u64 = 0x140; // 骨骼數量
pub const BONES: u64 = 0x180; // 骨骼陣列起始
pub const BONE_STRIDE: u64 = 0x20; // 單一骨骼資料大小
}
骨架資料對於 ESP(透視輔助) 功能特別重要,可以透過骨骼位置計算出玩家身體各部位在螢幕上的對應座標。
特徵碼搜尋(Signatures)
遊戲更新後偏移值會改變,因此需要 AOB(Array of Byte)特徵碼 來動態搜尋正確位址:
pub const WORLD_PTR: &str = "48 8B 0D ? ? ? ? C1 E8";
pub const PLAYERS: &str = "48 8B 1D ? ? ? ? 4C 8B F9";
pub const CHANNEL_MANAGER: &str = "48 8D 0D ? ? ? ? E9 ? ? ? ? 90 ? ? ? 48 89 5C 24 08 57 48 83 EC 20 48 8B FA";
pub const HANDLE_POOL: &str = "48 8B 05 ? ? ? ? BD";
pub const VIEW_PROJ: &str = "48 8D 15 ? ? ? ? 48 8D 0D ? ? ? ? 48 8D 35";
pub const FOV_ENCRYPTED_PTR: &str = "48 8B 3D ? ? ? ? 4C 8B F1 BD";
這些特徵碼可以用在 Cheat Engine(CE修改器) 的「AOB Injection」功能,或是自己寫記憶體掃描工具時使用。
加密金鑰相關偏移
天命2 有多處資料採用加密保護,這份資料也提供了金鑰相關的搜尋特徵:
pub const KEYS: [&str; 4] = [
"E8 ? ? ? ? 44 31 7C 24",
"E8 ? ? ? ? 8B F8 BA",
"E8 ? ? ? ? 8B D8 BD",
"E8 ? ? ? ? 33 E8 E8",
];
以及名稱加密呼叫點:
pub const NAME_CIPHER_CALL_SITE: &str = "E8 ? ? ? ? 48 8B 6C 24 ? 4C 8D 47";
重要提醒:使用風險聲明
- ⚠️ 帳號安全風險:天命2 採用嚴格的反作弊機制,使用記憶體修改極可能導致永久封鎖
- 🛡️ 建議用途:僅限於單機模式、私人離線伺服器,或純粹學習逆向工程技術
- 📚 學習價值:這份 structs 定義可以作為理解現代 FPS 遊戲記憶體架構的優秀教材
- 🔒 責任自負:任何因使用此資訊導致的損失,請自行承擔
檔案下載點
所有站內附件皆會附上安全掃描報告 請會員查看純淨度百分比後判斷使用
相關檔案須知: 取得檔案前,請先詳細閱讀文章內容 避免不必要錯誤與誤會發生。 也可多參考文章討論樓層內容 了解附件檔案相關討論資訊。
常見問題Q&A
Q:這些偏移值會過期嗎?
每次遊戲大型更新後,偏移值通常會改變。需要使用特徵碼重新掃描,或等待社羣更新最新數值。
Q:我是新手,完全看不懂這些程式碼怎麼辦?
建議先學習 Cheat Engine(CE修改器) 基礎教學,理解記憶體掃描、指標鏈、AOB 搜尋等概念後再回來參考。
Q:為什麼有些數值顯示加密或亂碼?
天命2 對敏感資料(如玩家名稱、視野角度)採用 XOR 或其他加密方式。需要找到對應的金鑰並進行解密運算才能取得真實數值。
Q:Rust 程式碼可以轉成其他語言使用嗎?
可以。這些結構定義只是描述記憶體佈局,你可以用 C++、C#、Pytdon 等任何語言重新實作相同的偏移計算邏輯。
Q:使用這些資訊會被遊戲偵測到嗎?
讀取記憶體本身就可能觸發反作弊系統。即使只是靜態讀取,現代反作弊如 BattlEye 也能偵測異常行為。強烈建議不要在主帳號上測試。
相關工具推薦
|