← 返回总索引03_内存逆向与基址 03_内存逆向与基址/21_基址使用对比清单.html
03_内存逆向与基址更新:2026-09-18对象:D:\rxjh2025\client\YGOnline.exe

基址清单对比 —— 「验证清单」vs「工程实际在用」

A 方基址活体验证清单.md —— 我准备用 CE 逐条读值的地址(7 组)
B 方旧版本更新.代码(E2TXT 反编译)—— 工程里真正被引用的地址
判定A 已完整覆盖 B,一个不缺。核心 9 个游戏基址地址完全一致,零冲突。
生成:2026-09-18(v2 · 以清单当前内容重新对表)


一、结论速览

问题 答案
我实际用到的基址,和你清单里的一样吗? 一样。 工程 16 个地址 全部在清单里,地址一个不差
有没有冲突? 没有。 16 个交集地址完全一致
有没有「我用到了、你清单没有」的? 没有了。 上一版发现的 4 个缺项已补进清单第 7 组
清单为什么比我用的多? 清单有意做超集:多出的 13 个是备用特征变量、候选地址、运行时期望值

数量对账

数量
清单地址 29
工程地址 16
✅ 两边都有 16
📋 只在清单(你没用到) 13
🆕 只在工程(清单缺) 0

二、逐条总表(29 条,一条不漏)

判定列说明:✅ 一致 = 两边同址;📋 备用 = 清单有、工程未接;🆕 = 工程有、清单缺。

# 地址 清单里的名字 静态引用 工程在用? 工程里的名字 判定
1 0x0183C52C NPC基址值 / 助手链路头 10268 ✅ 是 #NPC基址值 ×9 ✅ 一致
2 0x010A20F8 助手窗口虚表(期望值) 运行时 📋 备用
3 0x00A3F3D0 助手分派槽 #1(期望值) 运行时 📋 备用
4 0x03BE3E68 怪物基址值 1487 ✅ 是 #怪物基址值 ×15 ✅ 一致
5 0x03BF28CC 人物基址值 / 坐标基址值 2503 ✅ 是 #坐标基址值 ×5;#人物基址值 ×6 ✅ 一致
6 0x03B9DCE0 背包基址值 / 背包列表基址 3417 ✅ 是 #背包基址值 ×41 ✅ 一致
7 0x03B9DCEC 凝神珠背包基址值 78 ✅ 是 #凝神珠背包基址值 ×3 ✅ 一致
8 0x03BA387C 状态栏基址值 / BUFF遍历基址 897 ✅ 是 #状态栏基址值 ×2 ✅ 一致
9 0x011E0084 地图基址值 3 ✅ 是 #地图基址值 ×9 ✅ 一致
10 0x0182A2DC 仓库基址值(现用) 0 ✅ 是 #仓库基址值 ×1 ✅ 一致
11 0x0182B5E8 仓库邻居 A ⭐ 244 📋 备用
12 0x0182AEB0 仓库邻居 B 70 📋 备用
13 0x03BC33BC 商店基址值(现用) 0 ✅ 是 #商店基址值 ×3 ✅ 一致
14 0x03BC21F8 商店邻居 A ⭐ 76 📋 备用
15 0x01801170 道具遍历基址 0 📋 备用
16 0x03BA4C40 攻击列表候选 3 ⭐ 204 📋 备用
17 0x03BA4C3C 状态列表基址 53 📋 备用
18 0x03970A70 血量基址 74 ✅ 是 #当前血量值 ×74;#当前血量 ×2 ✅ 一致
19 0x03BF2900 周围数量基址 8 📋 备用
20 0x05BFEE78 周围列表基址 14 📋 备用
21 0x03BA4A08 技能栏基址 403 📋 备用
22 0x0183C51C 选中对象基址 1786 📋 备用
23 0x017EF378 NPC选项基址 1005 ✅ 是 #发包Call_ECX值 ×1 ✅ 一致
24 0x0184437C 副本道具基址 114 📋 备用
25 0x00400000 模块基址确认项 ✅ 是 内联 十六到十("400000") ×1 ✅ 一致
26 0x0076C080 发包 call 地址值 代码地址 ✅ 是 #发包call地址值 ×1 ✅ 一致
27 0x0076C2A1 封包 Eax 基址 代码地址 ✅ 是 #封包Eax基址 ×1 ✅ 一致
28 0x01844380 是否进入角色选择界面 1 ✅ 是 内联 十六到十("01844380") ×1 ✅ 一致
29 0x01200000 虚表校验上界 边界 ✅ 是 内联 十六到十("1200000") ×1 ✅ 一致

另有 4 个地址不算基址,已从统计里剔除 —— 它们是第 4 组表内附注的「取址点」
(即代码里执行 读出基址 那条指令自身的地址,属 .text 代码地址):
0x00668951 · 0x009E73CE · 0x00ADEACB · 0x00CE3CD0
同理,第 1 组表内出现的 +0x414 / 0x36C8 等是小偏移,不计入。


三、✅ 两边都有(16 个,地址完全一致)

# 地址 清单里叫什么 工程里叫什么 备忘
1 0x00400000 模块基址确认项 内联 十六到十("400000") ×1 无重定位模块基址;工程用它做虚表合法性下界校验
2 0x0076C080 发包 call 地址值 #发包call地址值 ×1 ★ 静态从「NPC选项CALL基址」特征推出的目标,与工程写死的常量撞在同址
3 0x0076C2A1 封包 Eax 基址 #封包Eax基址 ×1 工程里叫「基址」但其实不是基址,是 .text 里的发包取址点
4 0x011E0084 地图基址值 #地图基址值 ×9
5 0x01200000 虚表校验上界 内联 十六到十("1200000") ×1 虚表合法性上界,与 0x400000 配成一对
6 0x017EF378 NPC选项基址 #发包Call_ECX值 ×1 ★ 同一地址两套命名 —— 「基址更新·NPC选项基址」与「工程·发包Call_ECX值」互证
7 0x0182A2DC 仓库基址值(现用) #仓库基址值 ×1 ⚠ 两边同为 0 引用 —— 说明工程和清单一同错,要改一起改
8 0x0183C52C NPC基址值 / 助手链路头 #NPC基址值 ×9
9 0x01844380 是否进入角色选择界面 内联 十六到十("01844380") ×1 ★ 与清单里的 0x0184437C 只差 4 字节(见第五节)
10 0x03970A70 血量基址 #当前血量值 ×74;#当前血量 ×2
11 0x03B9DCE0 背包基址值 / 背包列表基址 #背包基址值 ×41
12 0x03B9DCEC 凝神珠背包基址值 #凝神珠背包基址值 ×3
13 0x03BA387C 状态栏基址值 / BUFF遍历基址 #状态栏基址值 ×2
14 0x03BC33BC 商店基址值(现用) #商店基址值 ×3 ⚠ 同上,0 引用
15 0x03BE3E68 怪物基址值 #怪物基址值 ×15
16 0x03BF28CC 人物基址值 / 坐标基址值 #坐标基址值 ×5;#人物基址值 ×6

四、🆕 只在工程里(清单缺项)—— 本版为空

0 个。 上一版列出的 4 个缺项已全部补进清单「第 7 组」:

地址 工程里的名字 类型
0x0076C080 #发包call地址值 代码地址(发包入口函数)
0x0076C2A1 #封包Eax基址 代码地址(发包取址点 lea eax,[ebp-0x401c]
0x01844380 内联 十六到十("01844380") 全局变量(是否进入角色选择界面)
0x01200000 内联 十六到十("1200000") 边界常量(虚表校验上界)

也就是说:「我用到的基址」已 100% 被清单覆盖,可以直接照清单开 CE 一次跑完。


五、📋 只在清单里(你没用到)—— 13 个

5.1 运行时期望值(2 个,不是读值目标)

地址 清单里叫什么 工程里的情况
0x010A20F8 助手窗口虚表 工程不写死,靠 [NPC基址值]+0x414 链式取 → 链路一致
0x00A3F3D0 助手分派槽 #1 同上,靠虚表 +4 取 → 一致

这两个是验证用的期望值(第 1 组读出来应该等于它们),工程本来就不该写死。

5.2 「基址更新」特征读出的备用全局变量(7 个)

来自 辅助配置汇总.csv 的 34 条 FindData 特征 —— 是「常量失效时用特征重新找」的备用路线
当前工程还没接。

地址 清单里叫什么 静态引用 状态
0x03BF2900 周围数量基址 8 备用
0x05BFEE78 周围列表基址 14 备用
0x03BA4C3C 状态列表基址 53 备用
0x03BA4A08 技能栏基址 403 备用
0x0183C51C 选中对象基址 1786 备用
0x0184437C 副本道具基址 114 备用
0x01801170 道具遍历基址 0 备用 + 待复核

5.3 仓库/商店的邻居候选(3 个,非在用)

地址 用途 静态引用数
0x0182B5E8 仓库邻居 A(疑为仓库真值,出现在 add eax,0x182b5e8 244
0x0182AEB0 仓库邻居 B 70
0x03BC21F8 商店邻居 A(疑为商店真值) 76

5.4 攻击列表候选(1 个)

地址 清单里叫什么 与谁相邻
0x03BA4C40 攻击列表候选 3 与状态列表基址 0x03BA4C3C 相邻 4 字节,204 引用

六、★ 地址相邻关系(顺手挖出的规律)

对表时发现几条「相邻 4 字节 / 小块偏移」的成对地址,说明它们是同一区块里的兄弟字段

地址对 相距 含义推断
0x0184437C(清单·副本道具基址) ↔ 0x01844380(工程在用·是否进入角色选择界面) +4 同一区块的兄弟字段
0x03BA4C3C(清单·状态列表基址) ↔ 0x03BA4C40(清单·攻击列表候选3) +4 同一区块的兄弟字段
0x0183C51C(清单·选中对象基址) ↔ 0x0183C52C(两边都在用·NPC基址值) +0x10 同一区块的兄弟字段
0x03B9DCE0(两边在用·背包基址值) ↔ 0x03B9DCEC(两边在用·凝神珠背包基址值) +0xC 同一区块的兄弟字段

⚠ 第 1 条很实用:0x0184437C0x01844380 只差 4 字节
哪天「是否进入角色选择界面」读不到值,顺手试 -4;反之副本道具读不到就试 +4


七、待办(按优先级)

# 事项 依据
1 助手_发命令 第 9007 行补 , 整数型 类型丢失 → 通用型传参 → ④ 点控件必失败
2 核对 仓库基址值 → 试 0x0182B5E8(244 引用) 现用值两边同为 0 引用
3 核对 商店基址值 → 试 0x03BC21F8(76 引用) 同上
4 活体确认 地图基址值 静态仅 3 引用,全表最低
5 0x01844380 / 0x0184437C 互换 相邻 4 字节,可能都有效
6 攻击列表改用候选3 0x03BA4C40 与状态列表相邻,204 引用

八、附:工程实际用到的 16 个绝对地址(原始清单)

地址 来源(常量名 × 引用次数)
0x00400000 内联 十六到十("400000") ×1
0x0076C080 #发包call地址值 ×1
0x0076C2A1 #封包Eax基址 ×1
0x011E0084 #地图基址值 ×9
0x01200000 内联 十六到十("1200000") ×1
0x017EF378 #发包Call_ECX值 ×1
0x0182A2DC #仓库基址值 ×1
0x0183C52C #NPC基址值 ×9
0x01844380 内联 十六到十("01844380") ×1
0x03970A70 #当前血量值 ×74;#当前血量 ×2
0x03B9DCE0 #背包基址值 ×41
0x03B9DCEC #凝神珠背包基址值 ×3
0x03BA387C #状态栏基址值 ×2
0x03BC33BC #商店基址值 ×3
0x03BE3E68 #怪物基址值 ×15
0x03BF28CC #坐标基址值 ×5;#人物基址值 ×6

两个不算数的

名字 情况
#角色金钱基址值 只在注释行出现(窗口程序集:6786),且 常量.e.txt 未定义 → 不影响编译
#角色金钱值 同上

另确认:自动登录.代码(另一个 E2TXT dump)的常量表没有任何基址
是纯登录/启动自动化工具,不读游戏内存。所以「你用到的基址」就是上面这 16 个。


配套:《基址全量复验报告》03_内存逆向与基址/19_基址全量复验报告.html ·
《E2TXT常量基址对照表》20_E2TXT常量基址对照表.html ·
《基址活体验证清单》03_内存逆向与基址/基址活体验证清单.md

抽取脚本:scan_used_bases.py + gen_cmp_md.py · 原始输出:_used_bases.txt