A 方:
基址活体验证清单.md—— 我准备用 CE 逐条读值的地址(7 组)
B 方:旧版本更新.代码(E2TXT 反编译)—— 工程里真正被引用的地址
判定:A 已完整覆盖 B,一个不缺。核心 9 个游戏基址地址完全一致,零冲突。
生成:2026-09-18(v2 · 以清单当前内容重新对表)
| 问题 | 答案 |
|---|---|
| 我实际用到的基址,和你清单里的一样吗? | 一样。 工程 16 个地址 全部在清单里,地址一个不差 |
| 有没有冲突? | 没有。 16 个交集地址完全一致 |
| 有没有「我用到了、你清单没有」的? | 没有了。 上一版发现的 4 个缺项已补进清单第 7 组 |
| 清单为什么比我用的多? | 清单有意做超集:多出的 13 个是备用特征变量、候选地址、运行时期望值 |
数量对账
| 项 | 数量 |
|---|---|
| 清单地址 | 29 |
| 工程地址 | 16 |
| ✅ 两边都有 | 16 |
| 📋 只在清单(你没用到) | 13 |
| 🆕 只在工程(清单缺) | 0 |
判定列说明:✅ 一致 = 两边同址;📋 备用 = 清单有、工程未接;🆕 = 工程有、清单缺。
| # | 地址 | 清单里的名字 | 静态引用 | 工程在用? | 工程里的名字 | 判定 |
|---|---|---|---|---|---|---|
| 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等是小偏移,不计入。
| # | 地址 | 清单里叫什么 | 工程里叫什么 | 备忘 |
|---|---|---|---|---|
| 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 一次跑完。
| 地址 | 清单里叫什么 | 工程里的情况 |
|---|---|---|
0x010A20F8 |
助手窗口虚表 | 工程不写死,靠 [NPC基址值]+0x414 链式取 → 链路一致 |
0x00A3F3D0 |
助手分派槽 #1 | 同上,靠虚表 +4 取 → 一致 |
这两个是验证用的期望值(第 1 组读出来应该等于它们),工程本来就不该写死。
来自 辅助配置汇总.csv 的 34 条 FindData 特征 —— 是「常量失效时用特征重新找」的备用路线,
当前工程还没接。
| 地址 | 清单里叫什么 | 静态引用 | 状态 |
|---|---|---|---|
0x03BF2900 |
周围数量基址 | 8 | 备用 |
0x05BFEE78 |
周围列表基址 | 14 | 备用 |
0x03BA4C3C |
状态列表基址 | 53 | 备用 |
0x03BA4A08 |
技能栏基址 | 403 | 备用 |
0x0183C51C |
选中对象基址 | 1786 | 备用 |
0x0184437C |
副本道具基址 | 114 | 备用 |
0x01801170 |
道具遍历基址 | 0 | 备用 + 待复核 |
| 地址 | 用途 | 静态引用数 |
|---|---|---|
0x0182B5E8 |
仓库邻居 A(疑为仓库真值,出现在 add eax,0x182b5e8) |
244 |
0x0182AEB0 |
仓库邻居 B | 70 |
0x03BC21F8 |
商店邻居 A(疑为商店真值) | 76 |
| 地址 | 清单里叫什么 | 与谁相邻 |
|---|---|---|
0x03BA4C40 |
攻击列表候选 3 | 与状态列表基址 0x03BA4C3C 相邻 4 字节,204 引用 |
对表时发现几条「相邻 4 字节 / 小块偏移」的成对地址,说明它们是同一区块里的兄弟字段:
| 地址对 | 相距 | 含义推断 |
|---|---|---|
0x0184437C(清单·副本道具基址) ↔ 0x01844380(工程在用·是否进入角色选择界面) |
+4 | 同一区块的兄弟字段 |
0x03BA4C3C(清单·状态列表基址) ↔ 0x03BA4C40(清单·攻击列表候选3) |
+4 | 同一区块的兄弟字段 |
0x0183C51C(清单·选中对象基址) ↔ 0x0183C52C(两边都在用·NPC基址值) |
+0x10 | 同一区块的兄弟字段 |
0x03B9DCE0(两边在用·背包基址值) ↔ 0x03B9DCEC(两边在用·凝神珠背包基址值) |
+0xC | 同一区块的兄弟字段 |
⚠ 第 1 条很实用:
0x0184437C和0x01844380只差 4 字节。
哪天「是否进入角色选择界面」读不到值,顺手试-4;反之副本道具读不到就试+4。
| # | 事项 | 依据 |
|---|---|---|
| 1 | ★ 助手_发命令 第 9007 行补 , 整数型 |
类型丢失 → 通用型传参 → ④ 点控件必失败 |
| 2 | 核对 仓库基址值 → 试 0x0182B5E8(244 引用) |
现用值两边同为 0 引用 |
| 3 | 核对 商店基址值 → 试 0x03BC21F8(76 引用) |
同上 |
| 4 | 活体确认 地图基址值 |
静态仅 3 引用,全表最低 |
| 5 | 试 0x01844380 / 0x0184437C 互换 |
相邻 4 字节,可能都有效 |
| 6 | 攻击列表改用候选3 0x03BA4C40 |
与状态列表相邻,204 引用 |
| 地址 | 来源(常量名 × 引用次数) |
|---|---|
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