Files
IC.Rebuild/diagnostics/2026-10-11-capture-018-review.md

77 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# capture-018 首轮完整采样核验与 0.1.9 解析修正
日期:2026-10-11。用户在国际服 2026.09.15.0000.0000 完成 0.1.8 网络采集并导出 `capture-018.jsonl`。时间范围为上海时间 18:12:32—18:13:52,约 80.5 秒。
文件 SHA256:`224AE627F6F6E613662745300C01493E411BDBE02CBA72366CCBD373DD28ECFF`。
本地 Opcode 缓存 SHA256:`2764186EA528587F15D07569816D413E77E8C38C572E4157787B3092BD6D1DB6`。未修改用户导出文件或映射缓存。报告与测试不保存原始坐标、对象 ID 或完整载荷。
## 采集结果
| 检查 | 结果 |
| --- | --- |
| 记录数 | 891:上行 534,下行 357 |
| 完整标记 | 891 完整,0 仅元数据,0 CaptureIssue |
| 序号 | 1—891 连续;单调时间顺序正常 |
| 载荷 | 合计 56,360 字节,单条 8—656 字节,无空载荷 |
| 客户端版本 | 全部匹配当前目标版本 |
36 的首轮完整采样通过文件核验。完整标记还通过已知包长度、当前原生发送构造及回显关系交叉核对。导出不含未形成记录的头部读取失败计数,不能据 CaptureIssue=0 宣称所有未记录调用都无异常;长期性能、反复启停、切图和卸载仍需独立验收。
## 暴露出的旧解析问题
0.1.8 解析器回放仅 2 条返回 Parsed=true(效果结果计数),502 条已有解析器的记录因长度不符被拒绝;其余为尚未接入或名称未知。两类不匹配为:
- 494 个普通移动包,Opcode 920,实际载荷 24 字节,旧 .cs 声明 40 字节。
- 8 个 Ping 请求,Opcode 838,实际载荷 32 字节,旧 .cs 声明 28 字节。
这是旧解析结构的问题,不是新采集随意截断或补齐载荷。原生依据:
- 普通移动入口 RVA 0x62B680。0x62B6CD 写 Opcode 0x398(920);0x62B6D7 写消息长度 0x28。按已核实的发送长度契约减去 0x10,业务载荷确为 0x18。位置字段仍从业务载荷 +8 开始。
- Ping 构造 RVA 0x1D02776 写 Opcode 0x346(838),0x1D0279C 写消息长度 0x30;业务载荷为 0x20。业务偏移 0 是本机毫秒计时值,偏移 4 来自网络模块的上一轮往返计时字段。
0.1.9 仅对完整客户端版本 2026.09.15.0000.0000 使用这些新长度。其他版本/无版本的旧离线调用保持旧行为,不将本次结论跨版本套用。
## Ping 响应映射与语义
原缓存缺少 DOWN_PingRsp。下行 338(0x152)共 8 条、均 32 字节,业务偏移 0 与 8 条 Ping 请求逐一回显匹配。
原生 NetworkModule 在 0x1D0223A 以 0x152 选择分支;0x1D022E1 从 IPC 缓冲区 +0x10(业务偏移 0)读回显计时,0x1D022E7 与当前毫秒计时相减,0x1D022F2 存回网络往返字段。此证据支持本版本 DOWN_PingRsp=338。
响应业务偏移 4 在本次样本中均为 333;原生在 0x1D02307 起将其作为另一路参数使用,不能将它标作 RTT。界面改为未解释的 field04,RTT 仍按请求/响应回显匹配和采集时间差计算。
0.1.9 在有效非空映射加载后,仅当版本匹配、未已有 DOWN_PingRsp 名称且 338 未被占用时补充本地映射,来源注明“本机核实 PingRsp”。不覆盖显式映射,也不改写缓存 JSON。
8 组记录配对的往返时间范围 83.2034—116.8623 ms,平均 91.6752 ms。这是采集点观察值,包含接收调度时间,不宣称是纯网络传输延迟。
## 修正后的同文件回放
| 项目 | 0.1.8 | 0.1.9 |
| --- | --- | --- |
| 有名称 | 716 | 724 |
| 无名称 | 175 | 167 |
| Parsed=true | 2 | 512 |
| 已有解析器但拒绝 | 502 | 0 |
| Ping 配对 | 0 | 8 |
512 条包括普通移动 494、Ping 请求 8、Ping 响应 8、历史效果结果计数 2;后者仍只是有限计数检查,不能将 Parsed=true 理解为所有字段均被完整解释。724 条有名称记录中,另 212 条尚无已接入解析器。
剩余未知下行如下,先保留原始数据,不凭相近数值或长度猜名称:
| Opcode | 长度 | 数量 |
| --- | --- | --- |
| 671 | 72 | 51 |
| 697 | 24 | 51 |
| 558 | 264 | 50 |
| 614 | 16 | 10 |
| 788 | 16 | 4 |
| 214 | 16 | 1 |
下一步优先核对高频未知 Opcode 与状态/动作结果的当前原生分派路径;8 的状态屏蔽仍不因取得样本就直接启用。
## 可复现验证
`Tools/CaptureAudit` 使用工程实际 PacketFiles、OpcodeMap、PacketParser 和 PacketCorrelator 生成只含汇总信息的报告。修正前后结果分别保存在 `2026-10-11-capture-018-before.json`、`2026-10-11-capture-018-after.json`。
Release 构建通过,0 警告、0 错误;60 项离线测试通过,新增版本长度隔离、映射冲突不覆盖、回显与完整性约束。实际文件回放另验证 891 条记录,不把离线测试条数作为现场功能数。