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
+170
View File
@@ -0,0 +1,170 @@
# IC Rebuild 验证记录
最新交付:0.1.16,2026 年 10 月 13 日。客户端补丁 `2026.10.06.0000.0000` 完整适配;23 项特征码全部扫描核对成功;支持双版本向后兼容;与阶段 1、阶段 2、阶段 3 合并发布。
## 0.1.16
客户端补丁与国服双环境适配交付:
- **国际服补丁与国服客户端扫描反汇编审计**:
- 针对国际服 `ffxiv_dx11.exe`(`2026.10.06.0000.0000`)与国服 `ffxiv_dx11.exe`(`D:\FINAL FANTASY XIV\game\ffxiv_dx11.exe`,`2026.09.15.0000.0000`,SHA256 `7BA28760BC53CBBBF66B63105FEA6C1BFE09CB6B1C6353FC8FB0FF03CC1A30F4`)分别执行全量静态特征码扫描。23 处特征码在两个不同客户端二进制中**全部唯一定位成功**(23/23 匹配)。
- 反汇编审计确认国服内部结构偏移(`ReceiverSendPacket` `0x1CF9020` 读 `+0xA70`、`ZoneClientSendPacket` `0x1CFEF30` 读 `+0x98`、`ZoneUp` `0x1D6DAD0`、`ZoneDown` `0x1D6D650` 读 `+0x88`、`StatusSetter` `0x8A4E10` 60 槽位、`AccelerationHook` `0x1827FC0` `+0x3C/+0x20`)及国服 Dalamud `FFXIVClientStructs.dll` 偏移(`0x23B0` / `0x78`)完全一致。详见 `diagnostics/2026-10-13-cn-client-compatibility.md`。
- **双版本向后兼容**:代码抽象为 `IsAuditedVersion`,同时兼容 `2026.10.06.0000.0000` 与 `2026.09.15.0000.0000`;界面顶栏自动识别国服/国际服。
- **Opcode 与双环境部署**:
- 国际服部署:`C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild`
- 国服部署:`C:\Users\AinaSnow\AppData\Roaming\XIVLauncherCN\dev\ICRebuild`,并在 `XIVLauncherCN` 的 `dalamudConfig.json` 注册开发插件加载项,同步 `opcodes.json`(含国服完整映射)。
阶段 3(M0 + M4)交付:
- **M0 统一版本适配与诊断(`Core/AdaptationManifest.cs`)**:建立全部 24 项保留模块与 M4 主动发送通道的签名、版本锁(`2026.09.15.0000.0000`)及 SDK 偏移(`0x23B0` / `0x78`)清单。本机 `ffxiv_dx11.exe` 核验 21 条唯一签名均精确匹配 1 处。对接 `ModuleManager` 自动门控版本不符、偏移变化、签名缺失或多重匹配的模块,不影响独立模块与离线分析;在 UI 增加“版本适配与诊断 (M0)”面板支持一键重扫。
- **M4 主动发送与请求响应事务(`Core/ActivePacketSender.cs`、`Runtime/NetworkManager.cs`)**:反汇编证明旧 `IC/NetManager.cs` 使用的 `0x4810E0` 在调用后恒定执行 `mov al, 1` 吞掉真实返回码;现改接 `Framework.Instance()->NetworkModuleProxy`(`+0x08`)→ `ReceiverSendPacket`(`0x1CFD140`)→ `ZoneClient.SendPacket`(`0x1D03040`)→ `ZoneUp`(`0x1D718C0`),保留真实 `byte` 返回码与 `0xF60` 清零发送缓冲区契约(`+0x00 Opcode`、`+0x08 payload.Length + 0x10`、`+0x20 Payload`)。提供 `UP_ActionSend`、`UP_ClientTrigger`、`UP_EventStart`、`UP_EventFinish*`(8 档)、`UP_EventAction*`(8 档)已审计编码器,`ActiveSendScope`(`PacketOrigin.PluginActiveSend` 来源标记),以及带队列上限(32)、限速(100 ms)、`SendSession` 区域/身份门控、网络回调重入拦截与显式状态机(`Queued`/`SentNative`/`RejectedNative`/`Confirmed`/`TimedOut`/`Canceled`)的 `ActivePacketDispatcher`。详见 `diagnostics/2026-10-12-stage3-m0-m4.md`。
Release 构建通过,0 警告、0 错误;84 项离线测试通过。新增四组测试覆盖 M0 适配诊断与门控、M4 原生发送缓冲布局与 8 档事件编码器往返、`ActiveSendScope` 来源标注隔离,以及 `ActivePacketDispatcher` 限速/取消/切区/重入拒绝/RTT 响应关联。
发行包 SHA256:`42358EF528F401797BAE73119B2C5B5E7DE0B101DF134C21230D89C7879A4913`。
0.1.15.0 已部署至 `C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild`。DLL、清单与第三方声明均与构建产物逐项核对 SHA256。DLL SHA256:`6E634280476BE04089C517DDB5619531054A510AF1FD9951FE2965FF1E6CFBB4`;清单 SHA256:`5371322709595D089AB8C50566215F8BA4E983608CC2D13CBA81C47D03BE043E`。0.1.14 备份位于 `deploy-backups/0.1.14-before-0.1.15`。未操作游戏或自动重载。
## 0.1.14
阶段 2(M3)交付:基于本机 `ffxiv_dx11.exe`(`2026.09.15.0000.0000`,SHA256 `5BBC501DD5C7F22FD61A11D08C25356041D878DB7CD83203ADAE393E4DFACC44`)上行构造与下行 `PacketDispatcher`(`0x18D9500`)反汇编,补齐 `UP_ActionSend`(32B)、`UP_ActionSendPos`(24B)、`UP_ClientTrigger`(32B)、`DOWN_ActorControl`(24B)、`DOWN_ActorControlSelf`(40B)、`DOWN_ActorControlTarget`(32B)、`DOWN_Effect`(124B)、`DOWN_StatusEffectList`(384B)、`DOWN_EffectResult`(96B)、`DOWN_ActorDelete`(8B)、`DOWN_ObjectSpawn`(64B)、`DOWN_NpcSpawn`(656B)的当前版本解析器,解决 P2 中 `UP_EventFinish*` 与 `UP_EventAction*` 的 8 档变长分档(`2/4/8/16/32/64/128/255`)固定长度与 `ArgCount` 边界冲突,并在 `PacketCorrelator.Actions` 中接入 `UP_ActionSend`/`UP_ActionSendPos` `RequestId`(`+0x06`)与 `DOWN_Effect` `RequestId`(`+0x18`)的时间轴关联。详细反汇编与字段依据见 `diagnostics/2026-10-12-protocol-stage2.md`。
Release 构建通过,0 警告、0 错误;80 项离线测试通过。新增三组测试覆盖上行动作/触发/8 档事件容量边界、下行战斗/状态/生成包长度与非有限浮点数拒绝(含 1500 次随机模糊输入)、以及动作请求响应 `RequestId` 配对。
`capture-018.jsonl` 离线回放报告(`diagnostics/2026-10-12-capture-018-v0114.json`):891 条记录全部完整、全部具名,`Parsed=891`(由 679 升至 891,覆盖率 100%),`SupportedButRejected=0`,`PingPairs=8`,`ActionPairs=27`(27 次 `UP_ActionSend` `RequestId 179..205` 与 27 次本地 `DOWN_Effect` 100% 配对)。
发行包 SHA256:`9FBD620CF25BB5947BE051F19623C1A7783F4AD915C2EF064CBF0A04198115F8`。
0.1.14.0 已部署至 `C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild`。DLL、清单与第三方声明均与构建产物逐项核对 SHA256。DLL SHA256:`45943548939502C9B3F73E841DE78F718F09AE798C5EC3154D516DF36A2B8C2E`;清单 SHA256:`CF4AE7D11DA8A0F5A7C476249437E841029F75DB4C81B12FD9BE5735E975A2ED`。0.1.13 备份位于 `deploy-backups/0.1.13-before-0.1.14`。未操作游戏或自动重载。
## 0.1.13
M1 交付:共享 Zone Hook、独立收包/发送前/发送后订阅、取消订阅、异常隔离、自持有只读载荷、日志过滤分离,以及新记录的来源/阶段上下文。保留原有原生签名、ABI、调用参数与长度契约,不主动发送或重放业务包。详细接口契约见 diagnostics/2026-10-11-network-manager.md。
Release 构建通过,0 警告、0 错误;77 项离线测试通过。新增七组针对调用顺序与次数、快照寿命、返回值保真、异常处理、接收失败、独立过滤、取消与共享生命周期及文件往返。
原 capture-018.jsonl 的 891 条记录经过管理器/记录器回放后载荷与关键元数据逐条一致,模拟发送后观察 534 次,观察和读取异常为 0。原文件的有限解析仍为 679 条、已支持格式拒绝 0、Ping 配对 8 组;报告为 diagnostics/2026-10-11-capture-018-manager.json。回放只调用托管代理,没有实际发送样本,不等于运行中原生入口验收。
发行包 SHA256:2D30524523461F673BA697808F30C169AFB748DC22E963C2DE26E40CFC986DBC。
0.1.13.0 已部署至 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild。DLL、清单与第三方声明均与构建来源逐项核对哈希。DLL SHA256:13C53AFE7EB57977321ED08568A1C67E4A13B49BCE68CF382397719E60F49283。0.1.12 备份位于 deploy-backups/0.1.12-before-0.1.13。未操作游戏或自动重载。
待重载后开启 36,检查记录、暂停/恢复与管理器计数,以及关闭后订阅归零。性能、切区、退出登录和卸载仍待现场验证。M1 代码任务已完成,现场验收未宣布完成;M4 主动发送与请求响应事务保持待实现。
## 0.1.12
编号 8 接入转换后的 StatusManager.SetStatus,保留原函数调用、返回值、完整来源 ID 与标志刷新。默认仅选 1257,支持候选名单编辑和命中显示;使用帧快照、实时本地指针与实体 ID 匹配,切区/注销清空快照、回放暂停。只处理后续状态更新,首次开启前已存在状态和绕过 setter 的直接复制路径不承诺立即过滤。
Release 构建通过,0 警告、0 错误;70 项离线测试通过。新增检查覆盖对象范围、指针复用、过期快照、回放、双列表槽位边界、名单隔离、原函数调用次数和参数/返回值保真。原生入口和身份读取签名分别唯一匹配 0x8A6BF0、0xB37D7A;SDK 字段与游戏 getter 已核对。详细依据见 diagnostics/2026-10-11-status-block-setter.md。
发行包 SHA256:1B11A5B9CE73754D28326BDCAB511849C40DF0737F7FFC075BC11608E967D817。
已部署至 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild,版本 0.1.12.0。DLL、清单及第三方声明均与构建来源逐项核对 SHA256。DLL SHA256:6200D4BE1F337C519A05A0B8B2C161AF5A544531217A3D38CFA36A7AD7B87A8C。0.1.11 备份在 deploy-backups/0.1.11-before-0.1.12。未操作游戏或自动重载。
待用户重载后先测试一个选定状态:开启 8 后触发、观察命中和实际行为,再关闭后触发同一状态确认正常处理。未选状态、其他角色、切区、回放及卸载仍待现场验收。未将 8 标记为已实测有效,首批与 M2 均未宣布完成。
## 0.1.1 历史记录
日期:2026 年 10 月 10 日。国际服客户端版本:2026.09.15.0000.0000。
- Release 构建通过,0 警告、0 错误。
- 26 项离线测试全部通过。
- 新增:工作线程读取帧快照、配置集合隔离、加速度保留原生输出、本地对象与活动状态门控、原子文件保存失败保留旧文件。
- 保留:模块生命周期、清理失败、依赖关系、包边界、3000 个随机截断输入、8000 次并发记录及导入导出测试。
- 已读取实际崩溃日志,确认 0.1.0 目标圈工作线程访问 ObjectTable.LocalPlayer 导致异常。
- 已只读审计本机游戏磁盘文件,确认最大加速度函数的运动状态读写和唯一签名匹配。
- Opcode 映射当前版本校验通过:上行 28 个名称与数值,下行 73 个名称、90 个数值;无同方向冲突。没有 DOWN_PingRsp。
用户首轮反馈已登记;0.1.1 修复后的游戏内效果待复测,不能将离线测试等同于现场通过。
旧版抓包未导出,崩溃后无法恢复。新版增加 5 秒滚动快照保存与导出命令,实时载荷仍未采集。
已部署到用户指定目录 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild。DLL 与清单 SHA256 和构建输出完全一致。DLL SHA256:D9AB1E73469F8AA2FD9DC82F0EA0D79663AC0D89397B4B41453AA67302F1B4C7。原版备份保留在 deploy-backups/0.1.0-before-0.1.1。
## 0.1.2
Release 构建通过,0 警告、0 错误;32 项离线测试通过。本机动作表识别 79 个玩家位移技能和 58 个不同 Timeline。14 的作用域与 16 的共用原生入口修复仍待游戏内复测。发行包 SHA256:5D966B0BC3FE6134D934E88C97B6DC863F2C48A50CE28683494A407994284BB5。
0.1.2 已部署至用户指定开发目录,DLL 与清单哈希均与构建产物一致;原 0.1.1 备份在 deploy-backups/0.1.1-before-0.1.2。
## 0.1.3
2026 年 10 月 11 日:Release 构建通过,0 警告、0 错误;35 项离线测试通过。Status 表及原生标识审计见 diagnostics/2026-10-11-id-audit.md。编号 7 的参数修正和新增减速保护尚待游戏内复测;编号 8 未启用。发行包 SHA256:139514E98ABF6B890C001698767F407089C2D89DF9D6A8D0D26EBD314E41E55D。
0.1.3 已部署至用户指定开发目录,DLL 与清单的 SHA256 均与构建产物一致;原版已备份。
## 0.1.4
2026 年 10 月 11 日:Release 构建通过,0 警告、0 错误;40 项离线测试通过。原生圈更新签名唯一匹配 RVA 0x7B5430,前置距离路径核对 RVA 0x8EE490。实际圈显示、距离及猛攻落点仍待复测。发行包 SHA256:1B40D57AE0790E88E6A082A0B10FFCFC3ACC0A66ACEEF9978F3DE9F02FCA0CF2。
0.1.4 已部署至指定开发目录,DLL 和清单哈希与构建结果一致;旧版备份在 deploy-backups/0.1.3-before-0.1.4。
## 0.1.5
2026 年 10 月 11 日:Release 构建通过,0 警告、0 错误;45 项离线测试通过。目标半径策略改为只扩大当前选中目标一次;加入用户确认状态文案、9 的会话内手动生效和清零、Timeline 折叠。用户确认的十项功能见 STATUS.md;14 的 16461 落点与 9 新交互仍待游戏内复测。
发行包 SHA256:0E16B90A610330E36F86273E20DC8B5571B71B2279CEFC818BDE47C149B8F9DF。
0.1.5 已解压部署至 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild,DLL 和清单哈希与构建输出一致。DLL SHA256:AC2F4620F5B025D6EE79A51BD3E459218E360A48DB85FE8DEA7AE948EFB70660。0.1.4 备份保留在 deploy-backups/0.1.4-before-0.1.5。等待用户热重载;未自动操作游戏。
## 0.1.6
2026 年 10 月 11 日:用户追加确认 3、9、10、11 验收通过,确认清单共 14 项。Release 构建通过,0 警告、0 错误;47 项离线测试通过。新增服务栏状态检查覆盖待应用、应用值与预设分离、特殊层暂停、非迷宫、关闭、运行失败与切区隐藏。
新增服务栏条目“IC Rebuild · 高度与迷宫”,每 200 ms 检查状态,只在状态变化时更新;悬停看详情,点击打开设置,卸载移除。所有滑块统一支持双击输入、确定或回车提交、范围钳制和取消;保留 Ctrl+单击输入。9 修改预设仍须另点生效。新 UI 交互未在游戏内自动验收。
发行包 SHA256:47294B9BCCEC1C6545ABC67F7418B295CE332E1504688556EC4A78EF5B60A8F2。
已部署至用户指定的 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild,版本 0.1.6.0,DLL 及清单与构建产物哈希一致。DLL SHA256:3905FDEBF6DF26AE3D1619AE69BB16EF2F6AB39C4AD9AE17DB7DD59AA8E0CBB2。旧版保存在 deploy-backups/0.1.5-before-0.1.6。等待用户热重载。
## 0.1.7
2026 年 10 月 11 日:用户确认 14 的 16461 落点正常,确认清单共 15 项。截图显示国际服服务栏部分中文缺字,现将服务栏和原生悬浮提示改为 ASCII 短文案,例如 IC Y:-7 D:1 F:23。插件窗口中文不变。
Release 构建通过,0 警告、0 错误;47 项离线测试通过,包含当前验证清单、服务栏状态语义和 ASCII 检查。游戏内显示待用户热重载核验。网络长度来源仅作只读研究,本版未变更采集实现。
发行包 SHA256:95AEF324FC2DE6C8B24FCA888AC4125A4FCBF9EBD8508C0AD649CB4F5C1B3CBD。
0.1.7.0 已部署至 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild,DLL 与清单哈希均与构建产物一致。DLL SHA256:FA936BC5C205CF9CBF510C9BD661376F63253FF6F01BB7F099235513753B88F2。旧版备份在 deploy-backups/0.1.6-before-0.1.7。
## 0.1.8
2026 年 10 月 11 日:36 接入按原生长度契约复制的上下行完整游戏载荷。下行改为接收函数成功返回后读取持有对象;上行仍在发送入口读取。两处签名在目标 exe 唯一匹配,exe SHA256 仍为 5BBC501DD5C7F22FD61A11D08C25356041D878DB7CD83203ADAE393E4DFACC44。依据详见 diagnostics/2026-10-11-network-full-capture.md。
Release 构建通过,0 警告、0 错误;57 项离线测试通过。新增边界/失败/过滤/兼容/缓冲预算检查,没有运行原生游戏 Hook。仍需用户开启 36、37 并导出 capture-018.jsonl 验证真实完整载荷及解析;36 未标记游戏内验收通过。
发行包 SHA256:9B7B14CC4BCD2019BE9036883C8BA9B8C624FEEF10F17A8BCE8E52F1B590C578。
0.1.8.0 已部署至 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild;DLL、清单和第三方声明哈希与构建产物一致。DLL SHA256:E90BF62C96E67E1BDE8712F7E32679ED4505077DBFE1830ED7AB7C9BF2FAA263。旧版备份在 deploy-backups/0.1.7-before-0.1.8。
## 0.1.9 与 capture-018 现场样本
2026 年 10 月 11 日:读取用户导出 capture-018.jsonl,891 条均为完整载荷(上行 534、下行 357),序号连续。对照原生发送构造后确认采集长度正确,修复普通移动 24 字节及 Ping 请求/响应 32 字节的当前版本解析;只在当前版本且映射缺失无冲突时补充 PingRsp=338。原始文件和映射缓存未修改。
Release 构建通过,0 警告、0 错误;60 项离线测试通过。同份实际文件回放 Parsed=true 从 2 增至 512,已有解析器的拒绝从 502 降至 0;8 组 Ping 回显匹配,往返 83.2—116.9 ms,均值 91.7 ms。167 条、6 种未知 Opcode 继续保留,2 条历史效果结果只通过有限计数检查。完整分析及统计见 diagnostics/2026-10-11-capture-018-review.md 和 before/after JSON。
发行包 SHA256:0AC409149DFC26E844EFE7A2C1AB3F95507B5CA96616D2CB27FFD7F118D51E26。
0.1.9.0 已部署到指定开发目录,DLL 与清单哈希与构建产物一致;DLL SHA256:A4A3192719E42E71295DF724EF7F3D302DBD15BE6A3E24895496E4810464E727。旧版保存在 deploy-backups/0.1.8-before-0.1.9。可热重载后启用 37 并导入同一文件查看,无需重新采样来验证本次离线解析修正。
## 0.1.10
2026 年 10 月 11 日:根据本机原生分派及消费字段核实 671=UpdateHate、558=UpdateHater、697=EffectResultBasic。补充当前版本缺失映射与有限字段解析;不覆盖显式映射,不修改源样本或缓存,不新增运行 Hook。
Release 构建通过,0 警告、0 错误;64 项离线测试通过,含新增计数/字节宽度/容量/版本/映射冲突及 1500 组任意输入检查。原 891 条完整样本回放,有名称 876,可解析 664,已支持格式拒绝 0,Ping 配对仍为 8。未知剩 15 条(614、788、214);已命名但未解析仍 212 条。依据及边界见 diagnostics/2026-10-11-opcode-671-697-558.md。
发行包 SHA256:3E9205ECB07973B8B94359EB4268CA378672C63C6CA2305A850F1BF472FF2E41。
0.1.10.0 已部署到 C:\Users\AinaSnow\AppData\Roaming\XIVLauncher\dev\ICRebuild,DLL 与清单哈希和构建输出一致。DLL SHA256:F5B2784BA1A1FB38C2F6456BB26C6BF539955B48638748EF47D0F2FB394B0211。旧版备份在 deploy-backups/0.1.9-before-0.1.10。
## 0.1.11
2026 年 10 月 11 日:补充 614 职业量表、788 职业信息、214 战斗归属的名称及已核实字段;原 ActorGauge=8 显式映射保留。状态列表另核实到 30×12 字节网络块及条件性 ID 转换,8 保持不可用。
Release 构建通过,0 警告、0 错误;66 项离线测试通过。891 条原始样本全部具名,有限字段解析 679 条、已支持格式拒绝 0、Ping 仍配对 8 组;另 212 条已命名记录未实现解析,不据此判定协议还原完成。原生及当前 SDK 字段核对见 diagnostics/2026-10-11-opcode-remaining-and-status.md。
发行包 SHA256:D51EBA459B079ED20438401505B3A37CE05DB31B3E49D28439C789C1750E4326。
0.1.11.0 已部署至用户指定开发目录,DLL 和清单与构建哈希一致。DLL SHA256:B39751B36705B2C8EE417CD500BD8DC49078BA4C402CDAF43EF43089305224B0。旧版备份在 deploy-backups/0.1.10-before-0.1.11。