分类:内存逆向与基址定位来源会话:2026-09-16原件:2026-09-16-13-19-49\基址总表_31007.md
基址总表(热血江湖 31007)
数据来源:工程 D:\AI空间\rxjh\模块\江湖基址 31007\常量.e.txt(作者已用 CE 特征码核对)。
用法:本表 = 「遍历代码_数组结构分析.md」里的总表,把每个常量名解析成了真实地址。拿到地址后,复制进 CE 地址栏或填进 常量.e.txt 即可;CE_对象分析_按总表.lua 已把这些值写死,直接挂游戏运行即可出对象分析报告。
版本说明:之前用 CE 实测的 #怪物基址=0x03BE3E68(62799464)属于另一版本(地址随版本变动)。本工程引用的模块是 31007,故以下为 31007 的权威值。换版本时只改地址、字段偏移通常不变。
一、数组 / 基址(直接地址 或 指针基址)
| 常量名 |
十进制 |
十六进制 |
性质 |
元素数 |
步长 |
定位规律 |
#怪物基址 |
51854192 |
0x03173B70 |
直接(指针数组) |
读 #怪数组大小 |
4 |
基址+i×4 读对象指针;i=0 常空,玩家在 8000+ 槽 |
#怪数组大小 |
51854124 |
0x03173B2C |
直接(整数) |
— |
— |
存对象数组元素总数 |
#遍历玩家基址 |
55480496 |
0x034E90B0 |
直接(指针数组) |
未知(扫到空止) |
4 |
另一份「在线玩家」列表,同对象布局 |
#角色基址 |
51794056 |
0x03165088 |
直接(自己对象) |
1 |
— |
直接读字段,不取指针 |
#背包基址 |
51664356 |
0x031455E4 |
指针→容器 |
背包格子(36/66) |
4 |
读指针→首址;首址+#背包位置+(x-1)×4 读物品指针 |
#装备栏基址 |
51664360 |
0x031455E8 |
指针→容器 |
同背包 |
4 |
物品对象同背包 |
#个人仓库基址 |
51677832 |
0x03148A88 |
指针→容器 |
60 |
4 |
物品对象同背包 |
#综合仓库基址 |
51677828 |
0x03148A84 |
指针→容器 |
60 |
4 |
物品对象同背包 |
#技能栏基址 |
51675868 |
0x031482DC |
指针→容器 |
28 |
4 |
首址+#背包位置+(x-1)×4 读技能指针 |
#辅助栏基址 |
51675864 |
0x031482D8 |
指针→容器 |
28 |
4 |
同上 |
#快捷栏基址 |
51666824 |
0x03145F88 |
指针→容器 |
10 |
4 |
动作栏基址 同此值 |
#状态栏基址 |
51666828 |
0x03145F8C |
指针→容器 |
30 |
4 |
= 快捷栏基址+4 |
#队员基址 |
51676752 |
0x03148650 |
直接(指针数组) |
固定 8 |
4 |
(x-1)×4+基址 读队员对象指针;x=1 通常是自己/队长 |
#游戏基址 |
51794064 |
0x03165090 |
直接(主结构) |
— |
— |
聊天/组队窗/结婚窗等都挂它下面 |
#地图ID基址 |
16389356 |
0x00FA14EC |
直接(整数) |
— |
— |
当前地图 ID |
#地图切换基址 |
16411896 |
0x00FA6CF8 |
代码段 |
— |
— |
切图 call 入口 |
聊天数组:#游戏基址 + 4×#聊天_聊天窗口(283)=+1132 读指针→消息数组首址;首址+(x-1)×4+#聊天_喊话位置(516) 读消息指针。
组队请求窗口:#游戏基址 + 4×#组队_窗口出现(6678) - 4 = +26708;+0x374(884) = 对方玩家序号。
二、对象字段偏移(相对对象指针)
2.1 角色对象 / 怪物·玩家对象(同一 C++ 结构,字段复用)
| 偏移(十进制) |
十六进制 |
常量名 |
含义 |
读 |
| +8 |
0x08 |
#怪物类型 |
类型:46怪物 / 49玩家 / 51地面 |
整数 |
| +12 |
0x0C |
#怪物ID |
对象 ID(玩家同字段) |
整数 |
| +20 |
0x14 |
— |
全服ID(邀请/打怪封包首字段,2字节) |
短整型 |
| +24 |
0x18 |
#玩家名称 |
玩家 BIG5 名 |
文本 |
| +864 |
0x360 |
#怪名称 |
怪/NPC BIG5 名 |
文本 |
| +944 |
0x3B0 |
#怪编号 |
怪物/NPC 编号 |
整数 |
| +1528 |
0x5F8 |
#怪当前血 |
当前血 |
整数 |
| +1556 |
0x614 |
#怪最大血 |
最大血 |
整数 |
| +1532 |
0x5FC |
#怪等级 |
怪等级 |
整数 |
| +860 |
0x35C |
#怪距离 |
距离(浮点) |
浮点 |
| +4216 |
0x1078 |
#怪当前X |
当前 X(浮点) |
浮点 |
| +4224 |
0x1080 |
#怪当前Y |
当前 Y(浮点) |
浮点 |
| +8028 |
0x1F5C |
#玩家当前X1 |
自己/玩家 当前 X(浮点) |
浮点 |
| +8036 |
0x1F60 |
— |
当前 Y(浮点) |
浮点 |
| +8044 |
0x1F64 |
— |
当前 Z(浮点) |
浮点 |
| +7460 |
0x1D24 |
#玩家目标X |
目标 X(浮点) |
浮点 |
| +7468 |
0x1D28 |
— |
目标 Y(浮点) |
浮点 |
| +10068 |
0x2754 |
#玩家等级 |
玩家等级 |
整数 |
| +9820 |
0x265C |
#玩家职业 |
职业(1刀2剑3枪4弓5医6刺7乐8韩9谭10格) |
整数 |
| +9824 |
0x2660 |
#玩家性别 |
性别 |
整数 |
| +9828 |
0x2664 |
#玩家正邪 |
正邪 |
整数 |
| +8176 |
0x1FF0 |
#玩家门派 |
门派 |
文本 |
| +11776 |
0x2E00 |
#玩家称号 |
称号标志 |
整数 |
| +10116 |
0x2784 |
#对话的NPCID |
当前对话 NPC 编号 |
整数 |
2.2 角色自身附加字段(仅 #角色基址 直接读)
| 偏移 |
十六进制 |
常量名 |
含义 |
| +52 |
0x34 |
#人物等级 |
等级 |
| +128 |
0x80 |
#当前血量 |
当前血 |
| +140 |
0x8C |
#最大血量 |
最大血 |
| +132 |
0x84 |
#当前内功 |
当前内功 |
| +144 |
0x90 |
#最大内功 |
最大内功 |
| +136 |
0x88 |
#当前愤怒 |
当前愤怒 |
| +148 |
0x94 |
#最大愤怒 |
最大愤怒 |
| +152 |
0x98 |
#人物经验 |
经验 |
| +172 |
0xAC |
#人物历练 |
历练 |
| +192 |
0xC0 |
#人物武勋 |
武勋 |
| +200 |
0xC8 |
#人物攻击 |
攻击 |
| +204 |
0xCC |
#人物防御 |
防御 |
| +208 |
0xD0 |
#人物命中 |
命中 |
| +212 |
0xD4 |
#人物回避 |
回避 |
| +228 |
0xE4 |
#人物金钱 |
金钱 |
| +236 |
0xEC |
#当前负重 |
当前负重 |
| +238 |
0xEE |
#最大负重 |
最大负重 |
2.3 队员对象(#队员基址 指向)
| 偏移 |
十六进制 |
常量名 |
含义 |
| +520 ⚠ |
0x208 |
— |
队员序号/ID(2字节,转移队长/踢人封包用)⚠ 与下条同属「队员对象」,偏移按发包代码反推,需运行时与 0x334 对照 |
| +524 ⚠ |
0x20C |
#组队_队员名称 |
队员名(BIG5)⚠ 源文件自相矛盾:常量值=824(0x338)、注释却写 20c(0x20C)。本表先按代码反推记 0x20C;运行时必须同时读 0x20C 与 0x338 确认哪个才是名字(见验证报告) |
| +908 |
0x38C |
#组队_队长名称 |
队长名 |
| +928 |
0x3A0 |
#组队_队伍等级 |
队伍等级 |
2.4 物品对象(背包/装备/仓库/技能/快捷/状态 通用)
| 偏移 |
十六进制 |
常量名 |
含义 |
| +84 |
0x54 |
#背包编号 |
物品编号 |
| +100 |
0x64 |
#背包名称 |
名字 |
| +3404 |
0xD4C |
#背包数量 |
数量 |
| +3412 |
0xD54 |
#物品类型 |
类型(1衣2护手3武器4鞋5内甲6项链7耳环8戒指9披风10石11符12强化19属性) |
| +172 |
0xAC |
#防具正邪 |
正邪 |
| +176 |
0xB0 |
#防具职业 |
职业 |
| +180 |
0xB4 |
#防具等级 |
等级 |
| +3636 |
0xE34 |
#合成次数 |
合成次数 |
| +3640 |
0xE38 |
#是否强化 |
是否强化 |
| +3652 |
0xE44 |
#强化次数 |
强化次数 |
| +3658 |
0xE4A |
#属性类型 |
属性类型 |
| +3660 |
0xE4C |
#属性次数 |
属性次数 |
| +3676 |
0xE5C |
#百宝药量 |
百宝药量 |
| +766 |
0x2FE |
#技能已学 |
已学(1=已学,技能栏用) |
| +180 |
0xB4 |
#技能等级 |
技能等级 |
数组内「物品/技能/图标」指针定位统一:容器首址 + #背包位置(1340/0x53C) + (x-1)×4。
2.5 聊天消息对象
| 偏移 |
十六进制 |
常量名 |
含义 |
| +516 |
0x204 |
#聊天_喊话位置 |
该偏移处是「消息指针数组」起点 |
| +556 |
0x22C |
#聊天_喊话内容 |
消息内容(读 56~60 字节) |
| +876 |
0x36C |
#聊天_喊话频道 |
频道号(8异口同声/9系统/13·10·20被杀) |
2.6 组队请求窗口对象(#游戏基址+4×6678-4)
| 偏移 |
十六进制 |
含义 |
| +884 |
0x374 |
对方玩家序号(接受/拒绝封包 0x34 用,2字节) |
三、关键 call / 功能地址(31007)
| 常量名 |
十进制 |
十六进制 |
用途 |
#发包call地址 |
7133456 |
0x006CD910 |
发包 call(特征码) |
#发包call_ecx |
16928676 |
0x01024FA4 |
发包 call 的 ECX |
#普攻call地址 |
7479840 |
0x00722220 |
普通攻击 call |
#快捷键call地址 |
9860544 |
0x009675C0 |
快捷栏 call |
#动作栏call地址 |
9866048 |
0x00968B40 |
动作栏 call |
#地图切换基址 |
16411896 |
0x00FA6CF8 |
切图 |
#隐藏怪物 |
7201169 |
0x006DE191 |
写 0/1 切换 |
#隐藏人物 |
7352479 |
0x0070309F |
写 0/1 切换 |
#隐藏建筑 |
8107780 |
0x007BB704 |
写 0/1 切换 |
#关闭渲染 |
7889521 |
0x00786271 |
写 0/1 切换 |
#无限视野 |
5388935 |
0x523A87 |
写 0/1 切换 |
#穿墙地址1 |
7377850 |
0x007093BA |
补丁 |
#穿墙地址2 |
8168839 |
0x007CA587 |
补丁 |
四、怎么用(找基址 → 分析对象)
- 找基址:本表已把总表里所有
#常量 解析成真实地址,无需再扫内存。对照游戏版本填进 常量.e.txt 即可(注意版本不同地址会变,偏移一般不变)。
- 分析对象:运行
CE_对象分析_按总表.lua(挂到 rxjh 进程,在 CE 的 Lua 引擎里 执行脚本)。脚本按上面的地址逐个数组走一遍,把每个对象的实际字段值写到 C:\Users\Administrator\rxjh_obj_analysis.txt,用来核对:
- 对象数组里 +20 是不是真全服ID、+24 名字对不对;
- 队伍数组 8 个槽的名字/队长/等级是否齐全;
- 背包/技能/仓库物品指针定位是否命中;
- 角色血量/坐标/职业是否对得上游戏内显示。
- 若某字段读出来是 0 或乱码,说明该版本偏移有偏差——按本表回到对应数组重扫即可。