- 新增 docs/客户端补丁与CRC校验.md:SelfCrcSlot 结构、CRC32 算法与种子坑、 槽位为什么只在 .data/.rdata 里找、info/verify/patch 用法与退出码、 build_90cn.ps1 集成、与「服务端 DLL 指纹」的区别、六类故障排查 - 新增 client-patch/tools/README.md:脚本清单与常用命令速查 - docs/README.md:文档索引与上手路径补一条 - 根 README:关键设计说明补「客户端自校验(CRC32)」小节,文档索引补一行 - 90CN.cpp:清掉过期的重复注释(旧的 patch_selfcrc.py / .text 段说法),与实现对齐
client-patch/tools
编译与构建后处理脚本。完整说明见 docs/客户端补丁与CRC校验.md。
| 文件 | 用途 |
|---|---|
build_90cn.bat |
双击入口,转调下面的 ps1 |
build_90cn.ps1 |
MSBuild 编 Release|Win32 → 收集产物 → 调 patch_dll_crc.py 写自校验 CRC;-SkipCrc 可跳过(仅调编译用,别拿去发布) |
patch_dll_crc.py |
补齐 / 校验 90CN.dll 自校验 CRC32 |
常用命令
# 编 DLL 并自动补 CRC
powershell -NoProfile -ExecutionPolicy Bypass -File build_90cn.ps1
# 只处理已有的 DLL
python patch_dll_crc.py info <dll> # 看节表与槽位
python patch_dll_crc.py verify <dll> # 校验当前 CRC
python patch_dll_crc.py patch <dll> # 重写 CRC(-o 可输出到副本)
退出码:0 通过 / 1 校验失败或找不到槽位 / 2 用法错误。
⚠️ 改完 DLL 除了补 CRC,还要重编服务端——
DNF90Server.exe在编译期绑定了 DLL 的 SHA-256,指纹不配套会被拒绝连接。