Files
IC.Rebuild/diagnostics/2026-10-11-original-dll.md
T

45 lines
3.4 KiB
Markdown
Raw 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.
# 原版 DLL 参考核对
日期:2026-10-11。用户提供 `IC/I-Ching-GL.dll`,原件保留未修改。
## 文件与依赖
- 大小:5,811,712 字节。
- 程序集:`I-Ching-GL, Version=0.1.6.6`。
- SHA256:`DA648072A2CE0856B4884A332EFAC063FC8F0E03236D7D4DBC9334BF0B2A2AA8`。
- 引用:System.Runtime 10.0.0.0、Dalamud 15.0.3.6、FFXIVClientStructs 7.56.2.9458、ECommons 3.2.1.17。
- 本机重建工程所用 FFXIVClientStructs 程序集为 7.56.2.9136。两者构建版本不同,不能直接将 DLL 的结构假设视为当前运行库已验证布局。
使用本机 Mono.Cecil 静态读取文件,没有通过 Assembly.Load 加载原版,没有执行模块初始化器或原版插件逻辑。
## 可核实的接口
| 对应功能 | DLL 元数据 | 与现有资料的关系 |
| --- | --- | --- |
| 14 目标半径 | ActorRadiusDetour / 委托:float(ulong, byte) | 与 IC/CombatHook.cs 的签名一致;不能据签名确定过滤对象或加值方式 |
| 9 高度偏移 | YMove 的普通、战斗路径均为 IntPtr(UIntPtr, IntPtr, uint) | 与现有两条移动路径的参数形状一致;不能据此确认字节偏移或是否恢复原值 |
| 16 突进无位移 | 旧入口委托:ulong(ulong, byte, ulong, float, IntPtr) | 与旧 .cs 一致;重建工程已基于当前原生入口及用户测试改用共用六参数入口,不退回旧入口 |
| 8 状态处理 | StatusCheckDetour(StatusManager*);GL 包处理为 void(uint, StatusEffectList*, bool, bool) | GL 委托比非 GL 多一个布尔参数;与旧 .cs 一致,仍未提供可读取的原生签名值或可靠方法体 |
## 方法体读取限制
本次选择目标半径、YMove、位移屏蔽、状态处理及状态结构中的 21 个方法:18 个读取方法体抛错,3 个得到明显可疑的 IL/长度。例:YMove.SafeAreaCheckPlus 被读为仅 3 字节,起始为缺少入栈操作的 ldelem.i1;StatusCheck.Dispose 的声明代码长度被读为 1,038,335,658 字节。模块初始化器含混淆标识调用。
这些现象与方法体保护或混淆相符,但尚未确定具体保护方案,亦不能仅由此排除文件损坏。不能将这些结果当作已成功反编译出的逻辑。尤其不能声称该 DLL 已证明 14 的真实半径公式、16461 的落点计算,或 9 的 UI 应用方式。
## 状态结构仍存在的矛盾
元数据再次确认旧 .cs 的声明:StatusEffectList.EntryData 在偏移 20,固定缓冲区为 240 字节;StatusEffectListEntry 声明 Size=8、Pack=1,但 SourceID 为偏移 8 的 uint,字段末端达到 12。这属于声明大小和字段范围不一致的证据,不能当作游戏网络布局。
旧 .cs 另外创建 30 项 Span;这个数量来自源码,DLL 的 get_Entries 方法体未成功读取,不能宣称本次已从 DLL 核实。仍须取得当前原生包长度和布局依据后才启用 8。
## 对重建工程的处理
将此文件登记为额外参考,用于后续接口与依赖交叉核对。本次没有基于不可读取的方法体修改运行逻辑,没有替换已部署 0.1.5。14 的当前修正继续等待 16461 游戏内复测;9 保持用户明确要求的“生效/回到 0”交互。
结构化证据保存在 `2026-10-11-original-dll-metadata.json`。可复现命令(工作区根目录):
```powershell
./IC.Rebuild/Tools/ManagedAudit/Audit.ps1 -AssemblyPath './IC/I-Ching-GL.dll' -OutputPath './IC.Rebuild/diagnostics/2026-10-11-original-dll-metadata.json'
```