← 返回总索引基址总表 · 分析检测报告 2026-09-16-13-19-49\基址总表_检测报告.md
分类:内存逆向与基址定位来源会话:2026-09-16原件:2026-09-16-13-19-49\基址总表_检测报告.md

基址总表 · 分析检测报告(热血江湖 D:\rxjh2025)

检测对象:游戏 D:\rxjh2025\client\YGOnline.exe(构建 2026-09-14);辅助源码 D:\AI空间\rxjh\模块\江湖基址 31007\常量.e.txt
检测方式:① 源码权威常量(辅助作者用 CE 特征码核对的 31007 版本定义);② 本机上一轮 CE 实测的活基址锚点(0x03BE3E68 对象/玩家数组)。
重要前提:本沙箱无法启动游戏/CE,故"活游戏实测"仅含上一轮已测出的 0x03BE3E68 一处;其余活地址需你在本机用文末脚本跑一次钉死。本报告把所有条目分类标注检测状态,不臆造"已确认"。


0. 一句话结论

平移量delta = 活对象数组(0x03BE3E68) − 31007怪物基址(0x03173B70) = 0x00A702F8 (10,945,272)

⚠ 注意:delta 是"整体平移"假设。游戏重编译后各全局变量偏移不一定同步平移,故下面"候选"值只作为指针扫描的起猜点,不是确认值。


1. 数组 / 基址检测表

状态图例:✅=活游戏实测确认 | 📁=源码 31007 权威(可能过期) | 🔄=31007值+delta 候选(待指针扫描) | ❓=未知

常量 31007值(hex) 检测状态 活游戏候选(=+delta) 说明
#怪物基址(对象/玩家数组) 0x03173B70 活实测 0x03BE3E68 CE 实测本游戏,玩家槽 8000+
#怪数组大小 0x03173B2C 📁→🔄 0x03be3e24 数组元素总数,读整数
#遍历玩家基址 0x034E90B0 📁→🔄 0x03f593a8 另一份在线玩家列表(同对象布局),与对象数组不同址
#角色基址 0x03165088 📁→🔄 0x03bd5380 自己对象,直接读字段不取指针;血在 +0x80
#背包基址 0x031455E4 📁→🔄 0x03bb58dc 指针→容器;首址+0x53C+(x-1)×4 物品指针
#装备栏基址 0x031455E8 📁→🔄 0x03bb58e0 同背包
#个人仓库基址 0x03148A88 📁→🔄 0x03bb8d80 60 格,同背包
#综合仓库基址 0x03148A84 📁→🔄 0x03bb8d7c 60 格,同背包
#技能栏基址 0x031482DC 📁→🔄 0x03bb85d4 28 格
#辅助栏基址 0x031482D8 📁→🔄 0x03bb85d0 28 格
#快捷栏基址 0x03145F88 📁→🔄 0x03bb6280 10 格;=#动作栏基址
#状态栏基址 0x03145F8C 📁→🔄 0x03bb6284 30 格;= 快捷栏+4
#队员基址 0x03148650 📁→🔄 0x03bb8948 8 槽指针数组;(x-1)×4+基址
#游戏基址 0x03165090 📁→🔄 0x03bd5388 主结构;聊天/组队/结婚窗挂其下
#地图ID基址 0x00FA14EC 📁→🔄 0x01a117e4 当前地图 ID(整数)
#地图切换基址 0x00FA6CF8 📁(代码段) 切图 call 入口,代码段通常不变
#选中NPC编号 0x03148A9C 📁→🔄 0x03bb8d94 当前选中 NPC 编号
#鼠标指向基址 0x00FEA454 📁→🔄 0x01a5a74c 鼠标指向对象
#游戏账号 0x03145780 📁→🔄 0x03bb5a78 账号字符串

聊天数组游戏基址 + 4×#聊天_聊天窗口(283) = +1132 读指针→消息数组首址;首址+(x-1)×4 + #聊天_喊话位置(516) 读消息指针。
组队请求窗游戏基址 + 4×#组队_窗口出现(6678) − 4 = +26708+0x374(884) = 对方玩家序号。


2. 对象指针与偏移检测(以"人物当前血值"作锚)

对象指针 = 数组基址 + i×4 读出的值(玩家对象 / 怪物对象共用同一 C++ 结构,字段布局一致)。

2.1 用血值反查确认(核心检测方法)

  1. 游戏内看自己血条数字,记为 HP(如 12345)。
  2. 对象数组0x03BE3E68)里逐槽读 +0x5F8,找等于 HP+0x08==49(玩家标识)的对象 → 命中即确认:
    - 数组基址 0x03BE3E68
    - 血量偏移 +0x5F8
    - 该对象指针即"你自己的玩家对象"。
  3. 同一对象再读 +0x18(名)、+0x14(全服ID)、+0x2754(等级)、+0x1F5C(坐标)→ 一并确认。
  4. 自己对象#角色基址 候选)读 +0x80,应也等于 HP → 反查确认 #角色基址 活值。

2.2 对象字段偏移表(✅ 跨版本稳定,HP 锚可验证)

偏移(hex) 十进制 常量 含义
0x08 +8 #怪物类型 46怪/49玩家/51地面 整数
0x0C +12 #怪物ID 对象 ID 整数
0x14 +20 全服ID(邀请/打怪封包首字段,2字节) 短整
0x18 +24 #玩家名称 玩家 BIG5 名 文本
0x360 +864 #怪名称 怪/NPC BIG5 名 文本
0x3B0 +944 #怪编号 怪/NPC 编号 整数
0x5F8 +1528 #怪当前血 当前血(HP 锚点) 整数
0x614 +1556 #怪最大血 最大血 整数
0x5FC +1532 #怪等级 怪等级 整数
0x35C +860 #怪距离 距离(浮点) 浮点
0x1078 +4216 #怪当前X 当前 X(浮点) 浮点
0x1080 +4224 #怪当前Y 当前 Y(浮点) 浮点
0x1F5C +8028 #玩家当前X1 自己/玩家 X(浮点) 浮点
0x1F60 +8036 当前 Y 浮点
0x1F64 +8044 当前 Z 浮点
0x1D24 +7460 #玩家目标X 目标 X 浮点
0x2754 +10068 #玩家等级 玩家等级 整数
0x265C +9820 #玩家职业 职业 整数
0x2660 +9824 #玩家性别 性别 整数
0x2664 +9828 #玩家正邪 正邪 整数
0x1FF0 +8176 #玩家门派 门派(文本) 文本
0x2E00 +11776 #玩家称号 称号标志 整数
0x2784 +10116 #对话的NPCID 对话 NPC 编号 整数

2.3 角色自身附加字段(#角色基址 直接读,HP 锚关键)

偏移(hex) 十进制 常量 含义
0x34 +52 #人物等级 等级
0x80 +128 #当前血量 当前血(=HP 锚,反查角色基址)
0x8C +140 #最大血量 最大血
0x84 +132 #当前内功 内功
0x90 +144 #最大内功 最大内功
0x88 +136 #当前愤怒 愤怒
0x94 +148 #最大愤怒 最大愤怒
0x98 +152 #人物经验 经验
0xAC +172 #人物历练 历练
0xC0 +192 #人物武勋 武勋
0xC8 +200 #人物攻击 攻击
0xCC +204 #人物防御 防御
0xD0 +208 #人物命中 命中
0xD4 +212 #人物回避 回避
0xE4 +228 #人物金钱 金钱
0xEC +236 #当前负重 负重
0xEE +238 #最大负重 最大负重

3. 专项对象检测

3.1 队员对象(#队员基址 指向,8 槽)

偏移(hex) 十进制 常量 含义 状态
0x208 +520 队员序号/ID(2字节,转队长/踢人封包用) 📁 源码反推
0x20C +524 #组队_队员名称 队员名(注释写此) 与下条矛盾
0x338 +824 #组队_队员名称 队员名(常量值=824) 与上式矛盾
0x38C +908 #组队_队长名称 队长名 📁
0x3A0 +928 #组队_队伍等级 队伍等级 📁

死矛盾处理:活测时同时读 0x20C 与 0x338,哪个出 BIG5 队员名即真值。并建议顺带读 0x208/0x334 的 2 字节 ID 对照。

3.2 物品对象(背包/装备/仓库/技能/快捷/状态 通用)

容器首址 + #背包位置(0x53C=1340) + (x-1)×4 读物品指针;偏移相对物品指针:

偏移(hex) 十进制 常量 含义
0x54 +84 #背包编号 物品编号
0x64 +100 #背包名称 名字
0xD4C +3404 #背包数量 数量
0xD54 +3412 #物品类型 类型(1衣2护手3武器…)
0xAC +172 #防具正邪 正邪
0xB0 +176 #防具职业 职业
0xB4 +180 #防具等级 等级
0xE34 +3636 #合成次数 合成次数
0xE38 +3640 #是否强化 是否强化
0xE44 +3652 #强化次数 强化次数
0xE4A +3658 #属性类型 属性类型
0xE4C +3660 #属性次数 属性次数
0xE5C +3676 #百宝药量 百宝药量
0x2FE +766 #技能已学 已学(技能栏)
0xB4 +180 #技能等级 技能等级

3.3 聊天消息对象

游戏基址+1132 读指针→消息数组首址;首址+(x-1)×4+0x204 读消息指针;偏移相对消息指针:

偏移(hex) 十进制 常量 含义
0x204 +516 #聊天_喊话位置 消息指针数组起点
0x22C +556 #聊天_喊话内容 消息内容(读 56~60 字节)
0x36C +876 #聊天_喊话频道 频道号(8异口/9系统/13·10·20被杀)

3.4 组队请求窗口对象(游戏基址+26708

偏移(hex) 十进制 含义
0x374 +884 对方玩家序号(接受/拒绝封包 0x34 用,2字节)

4. 关键 call / 功能地址(31007,代码段一般跨版本不变)

常量 31007值(hex) 用途
#发包call地址 0x006CD910 发包 call(特征码)
#发包call_ecx 0x01024FA4 发包 ECX
#普攻call地址 0x00722220 普攻 call
#快捷键call地址 0x009675C0 快捷栏 call
#动作栏call地址 0x00968B40 动作栏 call
#地图切换基址 0x00FA6CF8 切图
#隐藏怪物 0x006DE191 写 0/1
#隐藏人物 0x0070309F 写 0/1
#隐藏建筑 0x007BB704 写 0/1
#关闭渲染 0x00786271 写 0/1
#无限视野 0x523A87 写 0/1
#穿墙地址1/2 0x007093BA / 0x007CA587 补丁

5. 待确认 / 矛盾清单(本机跑脚本一次解决)

  1. #组队_队员名称:0x20C vs 0x338 —— 活测双读定论。
  2. 🔄 除对象数组外全部数组基址:31007 值过期,用候选值做指针扫描锚点;推荐以"自己玩家对象指针"为锚反查 角色基址,再以 角色基址 附近全局反查 背包/队员/游戏基址 等。
  3. #遍历玩家基址 与对象数组是否同一份:候选 0x03f593a8 待确认,可能就是对象数组别名。
  4. 📁 源码自身 22 处"值 vs 注释"不符(如 #玩家正邪 注释 2A60 但值 9828=0x2664;#背包数量 注释 4a0 但值 3404=0xD4C),十进制为编译实际值,以十进制为准。

6. 怎么在本机"检测"(钉死活地址)

已给脚本(工程目录同名文件):
- CE_全表验证.lua:把 PLAYER_HP 填成你游戏血条数字,CE 挂 YGOnline.exe 执行 → rxjh_fullcheck.txt,自动用 HP 锚反查对象数组/角色基址/队伍自身槽,并双读 0x20C/0x338。
- CE_未知重测.lua:算 delta 对全部过期数组测"原值/原值+delta",并指针扫描钉死 角色基址

跑完把 txt 发我,我把命中的活基址一次性回填进本表与 常量.e.txt