draxinar、1998 年版 Ultima Online サーバーをリバースエンジニアリング──C99 移植の OSS ライブラリ `ouo` を公開

10 年越しの個人プロジェクトが LLM の支援で完結。約 5,000 個の関数を x86 バイナリから C99 へ命令レベルで忠実に復元し、黎明期 MMORPG の内部構造を再現した。

リリース: 2026-05-01 · 読了 4
何が起きた
  • 1998年9月2日版の `UoDemo.exe` から、約 5,000 個の関数を C99 へ手動および LLM 支援で翻訳し公開した。

  • MSVC 5.0 (Visual Studio 97) でコンパイルされた x86 バイナリを `radare2` で解析し、命令レベルの同一性を検証済み。

  • 10 年間断続的に進められていたプロジェクトだが、近年の LLM の進化により未完了だった複雑な関数の翻訳が完遂された。

  • CEntity から CPlayer に至る 6 階層のクラス継承や、vtable による仮想関数ディスパッチの構造を完全に特定している。

なぜ重要
  • LLM を活用したレガシーバイナリの近代化プロセスの実例として、大規模な C++ プロジェクトの復元における LLM の実用性が証明された。

👁️ 開発者

バイナリ解析やエミュレータ開発に従事するエンジニアは、LLM を「命令レベルの整合性チェック」に組み込むことで、手動では数十年かかるリバースエンジニアリングの完遂率を劇的に高められる。

🇯🇵 日本

国内のレガシーゲーム資産を抱える大手ゲーム開発会社やデジタルアーカイブ組織は、ソースコード紛失時の復元手段として LLM 併用のリバースエンジニアリングを検討する段階にある。