Initial import of IC.Rebuild

This commit is contained in:
2026-10-13 22:55:05 +08:00
commit 16d61f7a5e
87 changed files with 17054 additions and 0 deletions
@@ -0,0 +1,76 @@
# 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 条记录,不把离线测试条数作为现场功能数。