案例

DX-Ball:借助 REA 并由 Codex 完成的函数级重建

作者让 Codex 通过 REA 的 Ghidra 工具检查英文版 DX-Ball 1.07 可执行文件并恢复为带类型的 C/C++,再用同时代的 Visual C++ 4.0 编译每个函数,在映射重定位后与原文件逐字节比较。同一套源码还可构建 MinGW Windows 游戏和可移植核心库。精确重建仍在进行中;REA 另行发布的声像展示只覆盖其中一个函数。

使用条件与局限

  • README 将精确重建标注为进行中,之后才会推进可游玩的 Visual C++ 4.0 构建及其他平台移植。自动生成的 PROGRESS.md 统计 553 个暂定函数候选,其中 475 个具备源码、395 个逐字节一致(85,106 个一致代码字节)、249 个通过有范围的语义验收,并称两个 Windows 构建都已在 Wine 下完成有记录的原版关卡流程。10 月 17 日另一次 50 关的 restored-CRT 尝试在时限到达时结束,未完成全部流程。
  • 需自备 config/target.toml 所标识的英文版 v1.07 Windows 压缩包;导入程序校验压缩包与 DXBALL.EXE 的哈希,并将可执行文件和素材放入被 git 忽略的 original/ 目录。README 指向一个第三方下载网站获取该压缩包;仓库并未确立其分发权利,本目录也不链接该网站。
  • 文档说明的宿主为 Linux x86-64,需要 Git、Python 3.11+、Node.js 22.19.0、32 位 Wine、Xvfb、CMake、Ninja 以及 GCC 或 Clang;Windows 交叉构建还需 i686 MinGW。初始化脚本获取以哈希固定的 JDK、Ghidra,以及来自第三方存档仓库的 Visual C++ 4.0 编译器。REA 锁定文件固定 rea-agents 6.5.0 与 Ghidra 12.1.4,而 docs/REA.md 仍写作 6.4.0;Codex goal 工作流需要 Codex 0.128.0 或更新版本。
  • 一个一致单元须在 COFF 重定位映射到原函数、导入项和数据后,整个函数零差异,并同时检查字面量数据;match-units.toml 记录重放每个单元所需的输入。差分测试在 Unicorn 模拟中运行原 x86 例程,与编译后的维护版 C 代码对照;公开 CI 构建可移植源码、校验记录的证据,并在不含游戏资源的情况下编译 Windows 适配层。所有结果均为项目报告;本合集未运行任何检查。
  • MIT 许可覆盖仓库代码;原游戏署名为 Michael P. Welch,3D 图形由 Seumas McNally 制作,需另行提供并保留其自身权利,下载的编译器与工具亦各有条款。REA 的使用通过保存的响应和一个弹丸链表的实例说明记录,但智能体的成效未经独立测量,也不主张运行复现。

关于此条目

类型
案例
类别
REA 社区调查案例
关联
作者报告的混合工具流程
目标
二进制 · 游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  2. docs/REA.md GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  3. docs/MATCHING.md GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  4. docs/BUILD.md GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  5. docs/PROGRESS.md GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  6. docs/research/ORIGINAL_CAMPAIGN.md GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  7. config/target.toml GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  8. config/tools.lock.toml GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  9. config/rea.lock.json GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  10. tests/test_boards_differential.py GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  11. .github/workflows/ci.yml GitHub · N0zoM1z0/dx-ball · 修订 d1251ea
  12. LICENSE GitHub · N0zoM1z0/dx-ball · 修订 d1251ea