保存拼接

主要观点

  • 介绍一个由banyaszvonat维护的关于破解视频游戏的项目,主题由mattgraham设计,曾有 hiatus 且会再次发生。
  • 主要探讨《吸血鬼:避世血族 2》(VtMB)的存档文件结构及首次破解尝试。
  • 存档文件以块(block)组织,如sp_foo.hl1等,块可能包含多个 zlib 流,解压过程较简单。
  • 解压后有基于特定魔数的“VALV 容器”,内部包含“VALV 块”。
  • 曾认为可利用名为“Python”的 VALV 块进行简单破解,尝试插入恶意代码但未成功,发现序列化对象边界模糊等问题。

关键信息

  • 存档文件结构:块 - 包含多个 zlib 流 - 解压后为 VALV 容器及内部块。
  • 首次破解尝试:生成 exploit 代码,替换 VALV 容器中的对象并重新压缩,但加载后发现并非 Python 相关,了解到读取起始位置等信息。
  • 其他细节:游戏可能使用固定大小缓冲区写头,导致文件名片段泄露;pickle 协议版本不是问题;错误消息有助于定位编译二进制中的CRestore::ReadFields

重要细节

  • 解压脚本示例及压缩脚本示例。
  • 展示相关图片,如各种文件和数据的截图,以辅助说明。
阅读 11
0 条评论