yunsuper/CrimsonDesert-Binary-Porting-Research

GitHub: yunsuper/CrimsonDesert-Binary-Porting-Research

针对Crimson Desert游戏的跨平台二进制移植研究,探索了x86_64到ARM64的架构壁垒与数据序列化差异。

Stars: 0 | Forks: 0

# [研究] Crimson Desert (Mac) - 跨平台二进制移植与 LZ4-HC 压缩分析 ## 🛠️ 技术挑战及成果 (Technical Achievements) 本研究中超越简单文件替换所解决的核心技术课题。 * **超高速内存索引 (Big Data Processing)**: 对约 150 万个游戏素材路径进行全面调查,实现了将需要 7 亿次以上运算的搜索过程仅需 3 秒即可完成的优化算法。 * **跨平台二进制精密手术 (Binary Patching)**: 完成了从 Windows 版模组数据中仅提取核心数值(12 字节块)并精确注入到 macOS 原版文件指定偏移量的逻辑。 * **构建 C++ 原生压缩引擎 (Native Bridge)**: 使用 Python `ctypes` 直接设计与移植能够完美控制 LZ4-HC (High Compression) 算法和 16 字节内存对齐 (Memory Alignment) 填充的 C++ 库。 * **三层完整性校验 (CRC) 绕过**: 成功重新计算连接 PAZ 数据、PAMT 地图、PAPGT 元数据的引擎严密安全哈希值,使被篡改的文件被识别为原版。 ## 🏛️ 名人堂 (Main Contributions) * **`run_perfect_engine.py`**: 150 万个素材超高速索引及精密二进制补丁执行器。 * **`core/compression_engine.py`**: 用于与 C++ 原生库通信的 ctypes 桥接。 * **`pa_compressor.cpp`**: 完美控制 16 字节内存对齐的 C++ 压缩引擎源码。 ## 🔬 研究日志 (Research Tools) * **`unpack_original.py` / `unpack_mod.py`**: 用于分析 PAZ 压缩结构的初期工具。 * **`compare_folders.py` / `compare_all_vars.py`**: 跨平台数据偏移探索器。 * **`find_Binary.py`**: 二进制流中有意义的数值块探索工具。 ## 🛑 最终分析:为什么没有生效?(Post-mortem) 这是对突破所有安全、压缩和内存对齐后仍然发生 SIGBUS (Data Abort) 的根本原因的思考。 1. **架构的绝对壁垒**: Windows(`x86_64`) 和 Mac(`ARM64`) 将数据加载到内存的方式有着根本性的不同。 2. **数据序列化 (Serialization) 不一致**: 游戏引擎将变量值烘焙为二进制时使用的结构体 (Struct) 中的空白 (Padding) 或端序 (Endianness) 处理方式会根据平台编译器而有所不同。 3. **结论**: 将 Windows 生成的“二进制数据基因”直接注入 Mac 引擎,就像移植血型不同的器官一样,会引起排斥反应。 *Insight: 这暗示了未来的 macOS Modding 不能采用导入 Windows 文件的方式,而需要开发通过直接分析 macOS 版本的二进制结构来修改数值的专用工具。* ## ⚠️ 运行时注意事项 (Prerequisites) 本仓库尊重原作者的著作权,不包含 Crimson Forge 的基础代码(`repack_engine.py, pamt_parser.py` 等)。 #### 如需测试此代码: * 从原始 [Crimson Forge GitHub 链接] 下载工具。 * 将本仓库的 `core/compression_engine.py` 覆盖到原始工具的路径中。 * 将自行构建的 **libpa_compressor.dylib** 放置在最顶层。 ## 📜 研究目的及法律声明 (Disclaimer & Research Purpose) 1. **教育及研究目的**: 本项目是为了学习 Windows(x86_64) 与 macOS(ARM64) 架构之间的二进制数据处理方式差异以及游戏引擎的压缩/完整性校验算法而进行的**非商业性研究**项目。 2. **遵守著作权**: - 不包含涉及 Pearl Abyss 知识产权的原始数据(.paz, .pamt 等)。 - 尊重其他 Modder(Crimson Forge 制作者)的独创代码,不分发基础引擎文件,仅包含亲自实现的逻辑和辅助工具。 3. **责任限制**: 本代码仅供学习资料使用,对实际游戏环境中的异常运行或账户不利影响不承担任何责任。 ## ⚖️ 许可证 (License) - **Source Code**: 本仓库中本人亲自编写的 Python 及 C++ 源代码遵循 [MIT License](https://opensource.org/licenses/MIT)。 - **Original Engine**: 未包含在 `core/` 文件夹中的原作者引擎代码的权利属于原作者。
标签:ARM64, C++, CRC校验绕过, Crimson Desert, ctypes, DNS 反向解析, LZ4-HC压缩, PAZ格式, Python, x86_64, 二进制修补, 云资产清单, 内存对齐, 原生桥接, 大数据索引, 客户端加密, 数据擦除, 文件完整性, 无后门, 游戏修改, 游戏安全, 资产提取, 跨平台移植, 逆向工具, 逆向工程