← 返回总索引队员结构 · 指针扫描分析 2026-09-16-13-19-49\队员结构_指针扫描分析.md
分类:内存逆向与基址定位来源会话:2026-09-16原件:2026-09-16-13-19-49\队员结构_指针扫描分析.md

队员结构 · 指针扫描分析基址

目标:在活游戏 D:\rxjh2025\client\YGOnline.exe 上找回真正的 队员基址(31007 模块的 0x03148650 已过期,exe 0 命中;delta 平移候选 0x03bb8948 也 0 命中 → 静态不可得,必须运行时指针扫描)。

一、队伍结构(源码坐实,来自 发包.static.e.txt 1091–1134)

计次循环首 (8, y)
    队员位置 = 内存_读整数型 (全局_进程句柄, (y - 1) × 4 + #队员基址)   ' ★ 8 槽指针数组
    队员名称 = 内存_读文本型 (全局_进程句柄, 队员位置 + #组队_队员名称)    ' 注释写 20c
    .如果真 (队员名称 = 队友名称)
        参数 = 内存_读字节集 (全局_进程句柄, 队员位置 + #组队_队员名称 - 4, 2)  ' 成员ID = 名字前 2 字节
        参数 = 参数 + 内存_读字节集 (全局_进程句柄, 队员位置 + #组队_队员名称, 12) ' 名字 12 字节

二、⚠ 核心矛盾:名字偏移 0x20C 还是 0x338

来源 名字偏移 成员ID 偏移
发包.static.e.txt 注释 0x20C 0x208
31007 模块常量 组队_队员名称 824 = 0x338 0x334

两者差 0x12C(300) 字节,不可共存。本脚本两种都试,用"8 槽数组是否对齐"自动判定哪个为真。

三、其它队伍字段(旧代码/早期CE提及,本游戏未验证,⚠待定)

四、指针扫描原理(两阶段)

阶段1 · 锚定一个队员对象指针

阶段2 · 从对象指针反查 队员基址

双偏移假说里,只有真偏移会让 8 槽整齐对齐 → 自动定论。

五、手动 CE 步骤(脚本跑不动时的兜底)

  1. 进游戏组队,记住一个队友名(如 一至尊霸王花一)。
  2. CE → 搜索 → 文本(选 BIG5/对应编码)搜该名 → 得到地址 A
  3. 队员位置 = A − 0x20C(再试 A − 0x338)。
  4. 队员位置 右键 → 对该地址指针扫描 → 路径形如 [[队员基址]+slot×4]队员基址 现形。
  5. 回填:把真偏移和 队员基址 写进 常量.e.txt 与总表。

六、已知队友名 BIG5 字节(脚本默认锚点,可改)

BIG5 字节
一至尊霸王花一 A4 40 A6 DC B4 4C C5 51 A4 FD AA E1 A4 40
一至尊一美美一 A4 40 A6 DC B4 4C A4 40 AC FC AC FC A4 40
沒有男朋友 A8 53 A6 B3 A8 6B AA 42 A4 CD
一至尊五花肉 A4 40 A6 DC B4 4C A4 AD AA E1 A6 D7