← 返回总索引对象字段偏移 · 验证清单 2026-09-16-13-19-49\对象字段偏移_验证清单.md
分类:内存逆向与基址定位来源会话:2026-09-16原件:2026-09-16-13-19-49\对象字段偏移_验证清单.md

对象字段偏移 · 验证清单(基于 D:\rxjh2025 目录二进制分析)

数据来源:游戏 D:\rxjh2025\client\YGOnline.exe(14.7MB)字节特征反查 + 辅助源码 模块\江湖基址 31007\常量.e.txt
状态图例:✅=二进制确认(在exe中命中) | 📁=源码权威(待运行时HP锚验证) | 🔍=需运行时指针扫描(静态不可得) | ⚠=源文件自相矛盾
关键结论:本游戏(2026-09-14 构建)是重编译版,31007 模块地址全部失效;对象数组、数组大小、背包基址(0x03B9DCE0) 三项被二进制确认,其余基址无法静态推导。


零、基址「可不可得」总判定(二进制反查结果)

基址 31007值 是否在本游戏exe出现 判定
#怪物基址(对象/玩家数组) 0x03173B70 0x03BE3E68 命中 1971 二进制确认
#怪数组大小 0x03173B2C 0x03BE3E24 命中 4 次(数组头−0x44) 二进制确认
#角色基址 #队员基址 #游戏基址 #技能栏 #快捷栏 #状态栏 #仓库×2 #地图ID #遍历玩家基址 见总表 ❌ 全部 0 次(含 +delta 候选) 🔍 静态不可得,需运行时指针扫描
#背包基址值(旧版本=0x03B9DCE0) 0x031455E4(31007) / 0x03B9DCE0(旧版本代码) 0x03B9DCE0 命中 3495 次(31007的0x031455E4 为0次) 二进制确认(活游戏背包基址)

含义:对象数组这个"锚"已钉死;以它拿到真实玩家/怪物对象指针后,对象字段偏移(相对指针)即可一次性验证;但其它基址不在 exe 静态数据里,必须 CE 指针扫描(角色基址/背包基址/队员基址 等)才能定位。


一、通用对象(玩家/怪物共用,+0x08 类型区分)

对象指针 = 0x03BE3E68 + i×4(玩家槽 8000+;遍历 k=8000+x, x=1..2000)。下列偏移相对该指针。

偏移 字段 状态 期望/判据
+0x08 类型 0x31=玩家(代码过滤) / 0x2E=?怪物 / 其他
+0x0C 对象ID/槽位 小正整数(代码读怪物ID)
+0x14 全服ID(发包值) 非零(CE 早前验证 玩家位置+20)
+0x18 名字(BIG5) 可读名字(代码 内存_读文本型)

以上 4 项由 _人物遍历_被单击 真实代码 + 早前 CE 实测共同坐实。


二、玩家对象字段(数组指针 + 偏移)— ★ 按 _人物遍历_被单击 代码,本游戏权威

偏移 字段 状态 期望
+0x08 类型(0x31) ✅ 代码 49
+0x0C 怪物ID/槽位ID ✅ 代码 小正整数
+0x14 全服ID ✅ CE 发包值
+0x18 名字(BIG5) ✅ 代码 角色名
+0x74 当前血 ✅ 代码(注释) 填血条数字锚定"自己"
+0x78 最大血 ✅ 代码(注释)
+0x2780 等级 ✅ 代码 1..200+(31007的+0x2754/+0x5FC)
+0x1F84 坐标X(float) ✅ 代码 世界坐标
+0x1F8C 坐标Y(float) ✅ 代码 世界坐标

31007 旧表作废项:当前血 +0x5F8、最大血 +0x5FC、等级 +0x5FC/0x2754、坐标 0x1078/0x1F5C 均为旧版本怪物/玩家布局,本游戏(YGOnline 2026-09-14)以代码为准。详见 玩家对象字段_数组指针偏移.md

⚠ 以下 31007 模块字段本版本未验证(布局已变,等级偏 +0x2C 且非整体平移,可能也错位):
| +0x265C | 职业 | ⚠ 待重定位 | 1..N 职业码 |
| +0x2660 | 性别 | ⚠ 待重定位 | |
| +0x2664 | 正邪 | ⚠ 待重定位 | |
| +0x1FF0 | 门派(文本) | ⚠ 待重定位 | 门派名 |
| +0x1D24 | 目标X | ⚠ 待重定位 | float |


三、怪物对象字段(数组指针 + 偏移)— ★ 按 _NPC遍历_被单击 代码,本游戏权威

玩家(type 0x31) 与怪物(type 0x2E) 是不同 C++ 类,偏移不通用! 遍历必须按 +0x08 先分流。

偏移 字段 状态 期望
+0x08 类型(0x2E) ✅ 代码 46
+0x0C 怪物ID/槽位ID ✅ 代码 小正整数(与玩家同偏移)
+0x364 名字(BIG5内联) ✅ 代码 怪名(玩家+0x18,也旧记0x360)
+0x5F4 当前血 ✅ 代码 整数
+0x5F8 最大血 ✅ 代码 整数(旧表误标为"当前血")
+0x5FC 等级 ✅ 代码 怪等级
+0x12FC 坐标X(float) ⚠ 代码注释(0x107C+0x280) 待验证
+0x130C 坐标Y(float) ⚠ 代码注释(0x1084+0x288) 待验证

玩家 vs 怪物 同数组不同类对照:名字 玩家+0x18 / 怪物+0x364;当前血 玩家+0x74 / 怪物+0x5F4;最大血 玩家+0x78 / 怪物+0x5F8;等级 玩家+0x2780 / 怪物+0x5FC;坐标X 玩家+0x1F84 / 怪物+0x12FC;坐标Y 玩家+0x1F8C / 怪物+0x130C。

⚠ 31007/早期分析作废项:怪名字 0x360(真实 0x364,差4可能是长度前缀);怪当前血误记 0x5F8(真实 0x5F4当前/0x5F8最大);怪坐标 0x1078/0x1080(真实 0x12FC/0x130C)。距离 +0x35C、怪编号 +0x3B0 不在本代码内,仍 ⚠ 待验证。详见 怪物对象字段_数组指针偏移.mdCE_怪物对象字段验证.lua


四、队员结构(属 #队员基址,🔍需指针扫描先钉死活基址)

偏移 字段 状态 期望
+0x208 队员ID(2字节) 📁 转队长/踢人封包用
+0x20C 队员名 ⚠ 源注释0x20C / 源值0x338 活测双读,出名字即定
+0x334 队员ID(alt,2字节) 📁
+0x338 队员名(alt) ⚠ 同上
+0x38C 队长名 📁
+0x3A0 队伍等级 📁

五、物品对象(容器属 #背包基址值=0x03B9DCE0 ✅,字段相对物品指针 📁)

★ 按 遍历背包 子程序(用户实跑代码)+ 旧版本更新.代码\常量.e.txt
背包基址值 0x03B9DCE0 已二进制确认(exe 3495 次)→ 容器基址无需指针扫描
容器访问:背包基址 = 读整数(0x03B9DCE0)物品位置 = 读整数(背包基址 + 0x53C + (格子-1)×4)≤0 跳过。

偏移 字段 常量 状态 读法
+0x64 名称 #背包物品名称值(100) 📁 文本(BIG5)
+0x54 编号 #背包物品编号值(84) 📁 整数
+0xD4C 数量 #背包物品数量值(3404) 📁 整数
+0xD54 分类 #物品分类值(3412,=物品类型) 📁 整数
+0xE3C 石头属性(槽0) #石头属性值(3644,=石头类型) 📁 整数
+0xE44 石头大小(槽0)/强化等级 #石头大小值(3652) 📁 整数(强化等级同一偏移)
+0xF9 说明 #物品说明值(249=0xF9) 📁 文本(BIG5)
+0x538 属性1 (代码硬编码0x538) 📁 文本
+0x738 属性2 (代码硬编码0x738) 📁 文本
+0x938 属性3 (代码硬编码0x938) 📁 文本
+0xB38 属性4 (代码硬编码0xB38) 📁 文本

石头槽数组(内部结构):石头属性[k]=物品位置+0xE3C+k×0x18石头大小[k]=物品位置+0xE44+k×0x18,每槽 0x18(24) 字节,k 从 0 起。
⚠ 装备等级/物品ID:本子程序声明但未读取(字段待补)。防具等级+0xB4/防具正邪+0xAC 来自31007旧表,本版本未验证。
字段偏移与 31007 模块数值一致(背包名称0x64/编号0x54/数量0xD4C/类型0xD54/石头0xE3C·0xE44/说明0xF9),但活游戏重编译、对象类偏移已变,物品类仍需 CE 读包确认。详见 物品对象字段_数组指针偏移.mdCE_物品对象字段验证.lua


六、其它(非对象指针)


七、目录分析所得「实料」清单

  1. 0x03BE3E68 对象数组(exe 1971 次)→ 锚点已钉死。
  2. 0x03BE3E24 数组大小(exe 4 次,数组头−0x44)→ 与 31007 相对布局一致。
  3. ❌ 31007 模块全部地址在 exe 0 命中 → 模块彻底过期。
  4. delta(0xA702F8) 平移对其它基址全部失效 → 重编译,需运行时指针扫描。
  5. #背包基址值=0x03B9DCE0 在 exe 命中 3495 次 → 背包容器基址已二进制确认(31007的0x031455E4 为0次)。物品对象字段偏移(相对物品指针)来自 遍历背包 代码 + 旧版本常量,与31007数值一致,但活游戏重编译下仍需 CE 读包确认。详见 物品对象字段_数组指针偏移.mdCE_物品对象字段验证.lua
  6. 📁 Default.ini 辅助GUI配置(挂机坐标/红药/仇人名单),无地址;游戏 log*.txt 无地址数据。
  7. 📁 对象字段偏移:通用 4 项(+0x08/+0x0C/+0x14/+0x18)已由 _人物遍历_被单击 代码 + CE 坐实;玩家对象 HP/等级/坐标 已由该代码确认为 +0x74/+0x78/+0x2780/+0x1F84/+0x1F8C(推翻 31007 旧表)。职业/性别/正邪/门派 等 31007 字段本版本未验证(⚠ 待重定位)。详见 玩家对象字段_数组指针偏移.mdCE_玩家对象字段验证.lua