65 lines
4.6 KiB
Markdown
65 lines
4.6 KiB
Markdown
# 国服客户端兼容性与反汇编审计记录(涵盖 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`。
|