════════════════════════════════════════════════════════════════ 【定稿】自己名字基址 = 0x03BF3A28(十进制 62863912) 日期:2026-09-28 状态:三客户端活体实测通过 ════════════════════════════════════════════════════════════════ 一、结论(一句话) 自己名字 = 编码_BIG5到简体 (内存_读文本型 (全局_进程句柄, 62863912)) 常量定义: .常量 自己名字值, "62863912" 十六进制: 0x03BF3A28 结构位置: 静态"角色名表"基址 0x03BF3848 的第 6 项(stride 0x50,slot6) 地址关系: 0x03BF3848 + 6 × 0x50 = 0x03BF3A28(偏移 0x1E0 = 480) 二、为什么确定是它(三客户端对照,铁证) 同一台机器上三个客户端同时在游戏内,各自读同一个固定地址 0x03BF3A28: pid 13360 (token010) slot6 = "沒有男朋友" ← 本机角色名 pid 2540 (token012) slot6 = "一至尊一美美一" ← 本机角色名 pid 13872 (token013) slot6 = "一至尊霸王花一" ← 本机角色名 每个客户端读到的都精确等于该客户端自己的角色名;连读 3 次内容稳定不变。 而 slot0 ~ slot5 三个客户端读出来【完全相同】: slot0 = 沒有男朋友 slot1 = 一菱一 slot2 = 輔助測試 slot3 = 江南雨替我說別 slot4 = 一至尊一美美一 slot5 = 漆黑烈焰使 slot7 ~ slot9 全空 → slot0~5 是三端共享的固定名单(疑为游戏内固定缓存), → 唯独 slot6 三端各不相同,且等于各自角色名,这就是"自己"。 交叉印证:自己永远不在队员表里(本次实测三端队员表都没有自己), 但名字表 slot6 有自己 —— 两条独立路径互不矛盾。 三、角色名表结构(0x03BF3848 起,每项 0x50 字节) slot 地址 本次实测(13360 视角) 0 0x03BF3848 沒有男朋友 1 0x03BF3898 一菱一 2 0x03BF38E8 輔助測試 3 0x03BF3938 江南雨替我說別 4 0x03BF3988 一至尊一美美一 5 0x03BF39D8 漆黑烈焰使 6 0x03BF3A28 ★ 自己 7~9 0x03BF3A78 空 每项是 BIG5 的 C 字符串(0x00 结尾),直接读文本型即可。 表中未见指针、未见动态分配 → 固定地址,跨进程一致,不随对象地址变动。 四、顺带实证:队员记录的三个偏移(十进制) 队员对象 + 816 (0x330) = 有效标志(1=有效,0=空槽) 队员对象 + 820 (0x334) = 队员 ID / 序号(空槽恒 65535) 队员对象 + 824 (0x338) = 队员名字(BIG5) 队员对象 + 864 (0x360) = 队长标志(1=该队员是队长) ★ 注意:常量表里的 816 / 864 / 824 是【十进制】,之前一度按 0x816 / 0x860 读 导致读错位置(+0x860 读出来恒 0)。正确对应关系: 816 = 0x330 → 有效标志 864 = 0x360 → 队长标志 824 = 0x338 → 名字 本次实测的队长归属(三端自洽): pid 13360 队员表 {美美一(队长=0), 霸王花一(队长=0)} → 表内无队长 → 自己是队长 pid 2540 队员表 {沒有男朋友(队长=1), 霸王花一(队长=0)} → 表内有队长 → 自己是队员 pid 13872 队员表 {沒有男朋友(队长=1), 美美一(队长=0)} → 表内有队长 → 自己是队员 实际队伍:沒有男朋友(队长) + 一至尊一美美一 + 一至尊霸王花一,人数 3,完全吻合。 五、完整子程序(遍历队员 + 显示自己 + 队长标注) .版本 2 .常量 自己名字值, "62863912" .子程序 遍历队员 .局部变量 队员对象, 整数型 .局部变量 队员序号, 整数型 .局部变量 队员名称, 文本型 .局部变量 队员位置, 整数型 .局部变量 成员数, 整数型 .局部变量 有效数, 整数型 .局部变量 找到队长, 逻辑型 .局部变量 自己名字, 文本型 .计次循环首 (8, 队员位置) 队员对象 = 内存_读整数型 (全局_进程句柄, #队员基址 + 4 × (队员位置 - 1)) .如果真 (队员对象 ≤ 0) 到循环尾 () .如果真结束 .如果真 (内存_读整数型 (全局_进程句柄, 队员对象 + #队员有效标志) ≠ 1) 到循环尾 () .如果真结束 有效数 = 有效数 + 1 队员名称 = 编码_BIG5到简体 (内存_读文本型 (全局_进程句柄, 队员对象 + #队员名称值)) .如果真 (内存_读整数型 (全局_进程句柄, 队员对象 + #队长标志值) = 1) 找到队长 = 真 .如果真结束 挂机信息.加入文本 (自定义时间 () + “*****************” + #换行符) 挂机信息.加入文本 (自定义时间 () + “队员格号:” + 到文本 (队员位置) + 选择 (内存_读整数型 (全局_进程句柄, 队员对象 + #队长标志值) = 1, “(队长)”, “”) + #换行符) 挂机信息.加入文本 (自定义时间 () + “队员序号:” + 到文本 (位与 (内存_读整数型 (全局_进程句柄, 队员对象 + #队员序号值), 65535)) + #换行符) 挂机信息.加入文本 (自定义时间 () + “队员名称:” + 队员名称 + #换行符) 成员数 = 成员数 + 1 .计次循环尾 () 自己名字 = 编码_BIG5到简体 (内存_读文本型 (全局_进程句柄, #自己名字值)) .如果真 (自己名字 ≠ “”) 挂机信息.加入文本 (自定义时间 () + “*****************” + #换行符) 挂机信息.加入文本 (自定义时间 () + “队员格号:自己” + 选择 (取反 (找到队长), “(队长)”, “”) + #换行符) 挂机信息.加入文本 (自定义时间 () + “队员名称:” + 自己名字 + #换行符) 成员数 = 成员数 + 1 .如果真结束 挂机信息.加入文本 (自定义时间 () + “遍历完成,共 ” + 到文本 (成员数) + “ 人(有效格 ” + 到文本 (有效数) + “)” + #换行符 + #换行符) .子程序 自己是队长, 逻辑型 .局部变量 队员对象, 整数型 .局部变量 队员位置, 整数型 .计次循环首 (8, 队员位置) 队员对象 = 内存_读整数型 (全局_进程句柄, #队员基址 + 4 × (队员位置 - 1)) .如果真 (队员对象 ≤ 0) 到循环尾 () .如果真结束 .如果真 (内存_读整数型 (全局_进程句柄, 队员对象 + #队员有效标志) = 1 且 内存_读整数型 (全局_进程句柄, 队员对象 + #队长标志值) = 1) 返回 (假) .如果真结束 .计次循环尾 () 返回 (真) 注:自己是队长() 已去掉上一版的 [人物基址值] 保护 —— 人物基址 0x03BF28CC 当前版本读 0 (已失效),改用队员表自身判定即可,不需要它。 六、预期输出示例 (13360 是队长、队里 2 人) ***************** 队员格号:1 队员序号:1177 队员名称:一至尊一美美一 ***************** 队员格号:2 队员序号:465 队员名称:一至尊霸王花一 ***************** 队员格号:自己(队长) 队员名称:沒有男朋友 遍历完成,共 3 人(有效格 2) (2540 是队员、队里 2 人) ***************** 队员格号:1(队长) 队员序号:1458 队员名称:沒有男朋友 ***************** 队员格号:2 队员序号:465 队员名称:一至尊霸王花一 ***************** 队员格号:自己 队员名称:一至尊一美美一 遍历完成,共 3 人(有效格 2) 七、待你实测确认的两点(我这边无法验证) 1. 换角色是否更新:本项目 0x03BF3A28 三端同时在线、内容各不相同,判断是"当前角色名"; 但没测过"同账号退出换另一个角色再进"的场景。请用换角色实测一次: 若换角色后该地址没跟着变(仍显示旧角色名),回来告诉我,我改从角色对象里取。 2. 未进游戏/在选人界面时该地址大概率是空或旧值 → 代码里已加 自己名字 ≠ “” 保护。 八、本次验证用到的工具与产物 D:\ce_mcp\_verify_selfname.py 四路候选一次性验证(旧写法/全局结构体/名字表/全内存搜名) D:\ce_mcp\_nametable.py 三客户端对照名字表与队员表 D:\ce_mcp\_captain.py 队长标志(864/+0x360)与名字表稳定性复测 输出:verify_13360.txt / nametable.txt / captain.txt ★ 环境前提:必须用【32 位】的 CE(D:\登录源码数据存储账号\CE+调试V7.6\csrss.exe) 挂桥。64 位 CE 读这个 32 位游戏恒 nil(反外挂驱动 xhunter2 只放行 32 位)。 ════════════════════════════════════════════════════════════════