# 国服客户端兼容性与反汇编审计记录(涵盖 2026.09.15 与 2026.10.06) - **日期**:2026 年 10 月 13 日 - **国服游戏路径**:`D:\FINAL FANTASY XIV` - **国服更新后版本**:`2026.10.06.0000.0000` - **国服更新后二进制**:`D:\FINAL FANTASY XIV\game\ffxiv_dx11.exe`(51,910,400 字节,SHA256 `958B78E278AD896493C484EB313FF605AB41EDEFEF74F92B0EE078E69B281BF9`) - **国服更新前基线备份**:[`binaries/2026.09.15.0000.0000-cn/ffxiv_dx11.exe`](file:///e:/SapphireServer/Dalamud%20Dev/IC.Rebuild/binaries/2026.09.15.0000.0000-cn/ffxiv_dx11.exe)(51,881,216 字节,SHA256 `7BA28760BC53CBBBF66B63105FEA6C1BFE09CB6B1C6353FC8FB0FF03CC1A30F4`) - **国服启动器**:`XIVLauncherCN`(位于 `C:\Users\AinaSnow\AppData\Roaming\XIVLauncherCN`) --- ## 1. 国服更新前后 23 处特征码全量扫描对照 在更新后的国服二进制上执行扫描,**23/23 处特征码全部匹配成功**(22 处单一匹配,1 处 `NoBackswing` 包装入口匹配 2 处且首匹配正确): | 序号 | 目标名称 | 模块 ID | 国服更新前 RVA (2026.09.15 CN) | 国服更新后 RVA (2026.10.06 CN) | 国际服新版 RVA (2026.10.06 Global) | 匹配数 | 状态 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | 1 | `SpeedHook` | 1 | `0x8D5060` | `0x8D61A0` | `0x8D6AF0` | 1 | 匹配 | | 2 | `AccelerationHook` | 2 | `0x1827FC0` | `0x1829480` | `0x182BB40` | 1 | 匹配 | | 3 | `MovePermissionHook` | 3 | `0xE12940` | `0xE13F70` | `0xE16030` | 1 | 匹配 | | 4 | `AntiKnockHook` | 4 | `0x909EB0` | `0x90AEB0` | `0x90B650` | 1 | 匹配 | | 5 | `OnSendFlagHook` | 5 | `0x62A250` | `0x62B350` | `0x62B050` | 1 | 匹配 | | 6 | `FallCheckHook` | 6 | `0x182BE84` | `0x182D344` | `0x182FA04` | 1 | 匹配 | | 7 | `ForcedWalkHook` | 7 | `0x1947573` | `0x1948A83` | `0x194AFE3` | 1 | 匹配 | | 8 | `StatusSetter` | 8 | `0x8A4E10` | `0x8A5F50` | `0x8A6A30` | 1 | 匹配 | | 9 | `LocalPlayerPtr` | 8 | `0xB34FBA` | `0xB3660A` | `0xB37D0A` | 1 | 匹配 | | 10 | `OnSendNormalMove` | 9 | `0x62A970` | `0x62BA70` | `0x62B770` | 1 | 匹配 | | 11 | `OnSendCombatMove` | 9 | `0x62AA20` | `0x62BB20` | `0x62B820` | 1 | 匹配 | | 12 | `ActorRadius` | 14 | `0x175360F` | `0x1754CDF` | `0x175720F` | 1 | 匹配 | | 13 | `NativeTargetRingUpdate` | 14 | `0x7B43E0` | `0x7B54F0` | `0x7B52D0` | 1 | 匹配 | | 14 | `NoBackswing` | 15 | `0x8D5150` | `0x8D6290` | `0x8D6BE0` | 2 (首匹配有效) | 匹配 | | 15 | `ActionMovementStart` | 16 | `0x181E9B0` | `0x181FE70` | `0x1822530` | 1 | 匹配 | | 16 | `SyncRecast` | 17 | `0x8ED480` | `0x8EE480` | `0x8EEC20` | 1 | 匹配 | | 17 | `CastStaticAddress` | 19 | `0x1054C7` | `0x1054D7` | `0x104FF7` | 1 | 匹配 | | 18 | `CastUpdate` | 19 | `0x8DE2C0` | `0x8DF400` | `0x8DFA60` | 1 | 匹配 | | 19 | `SetScale` | 29 | `0x897940` | `0x898A80` | `0x899560` | 1 | 匹配 | | 20 | `ZoneUp` | 36 | `0x1D6DAD0` | `0x1D706B0` | `0x1D72B00` | 1 | 匹配 | | 21 | `ZoneDown` | 36 | `0x1D6D650` | `0x1D70230` | `0x1D72680` | 1 | 匹配 | | 22 | `ReceiverSendPacket` | M4 | `0x1CF9020` | `0x1CFA9B0` | `0x1CFD120` | 1 | 匹配 | | 23 | `ZoneClientSendPacket` | M4 | `0x1CFEF30` | `0x1D008B0` | `0x1D03020` | 1 | 匹配 | --- ## 2. 更新后关键原生反汇编核实 1. **M4 主动发送通道**: - `ReceiverSendPacket`(`0x1CFA9B0`):`mov rcx, [rcx+0A70h]` 读取 `ZoneClient`,若空则返回 `0`;非空以 `priority=0` 调用 `ZoneClientSendPacket`(`0x1D008B0`)。 - `ZoneClientSendPacket`(`0x1D008B0`):`mov rcx, [rcx+98h]` 检查底层指针,调用 `ZoneUp`(`0x1D706B0`),保留真实返回码。 - `ZoneUp`(`0x1D706B0`):发送缓冲区契约(`+0x00 Opcode`、`+0x08 TotalSize`、`+0x20 Payload`)与旧版完全一致。 2. **模块 36 收包**: - `ZoneDown`(`0x1D70230`):`cmp qword ptr [rcx+88h], 0`,消息解包偏移完全一致。 3. **模块 8 状态屏蔽**: - `StatusSetter`(`0x8A5F50`):`cmp edx, 3Ch`(60 个状态栏槽位),槽位大小依然为 12 字节。 - `LocalPlayerPtr`(`0xB3660A`):虚表偏移 `+0x278`(`call qword ptr [rax+278h]`)完全一致。 4. **模块 2 最大加速度**: - `AccelerationHook`(`0x1829480`):`cmp byte ptr [rcx+3Ch], 0`、`mov rdi, [rcx+20h]` 完全一致。 --- ## 3. 国服环境与 Opcode 1. **客户端版本**:更新后 `ffxivgame.ver` 变为 `2026.10.06.0000.0000`,与代码中 `PacketParser.AuditedClientVersion` 完美吻合,门控全通。 2. **Opcode 配置**:本地 `opcodes.json` 中已含有 `"2026.10.06.0000.0000"`(`UP_PingReq: 137`,`DOWN_PingRsp: 338`),Ping 与收发包分析立即就绪。 3. **开发插件加载**:`XIVLauncherCN` 的 `dalamudConfig.json` 中已注册 `ICRebuild.dll`。