LLMによるN64ゲーム逆コンパイルの衝撃

N64ゲームの逆コンパイルにAIが活用されています。LLMを使った「ワンショット逆コンパイル」が話題です。しかし、これは単なる実験ではありません。そこで今回は、AI逆コンパイルの技術と成果を紹介します。

ワンショット逆コンパイルとは

Chris Lewis氏が先駆者的な存在です。AnthropicのClaudeを使った手法を開発しました。つまり、1回の試行でアセンブリをCコードに変換する方法です。しかし、従来の逆コンパイラとはアプローチが根本的に異なります。

具体的には、LLMにアセンブリコードを入力します。また、元のゲームの既知のコードパターンもコンテキストとして提供します。さらに、変数名や関数名も推測して付与します。そのため、人間が読みやすいCコードが生成されます。実際、従来の数週間の作業が数分で完了します。

N64が対象として選ばれた理由

なぜN64が対象なのでしょうか。まず、N64はMIPS R4300アーキテクチャを使用しています。しかし、MIPSは比較的シンプルな命令セットです。つまり、LLMが解析しやすい構造です。

また、N64のゲームはCで書かれていることが多いです。さらに、既に手動で逆コンパイルされたゲームが複数存在します。たとえば、スーパーマリオ64やゼルダの伝説が有名です。そのため、LLMの学習データとして利用できます。特に、正解データがある点が研究に適しています。

AI逆コンパイルの精度と課題

現状の精度はどの程度でしょうか。実際、単純な関数では90%以上の一致率を達成しています。しかし、複雑なロジックではまだ課題があります。つまり、構造体や共用体の正確な復元は困難です。

また、最適化されたコードの解析も苦手です。具体的には、コンパイラの最適化で元の構造が変わっている場合です。さらに、浮動小数点演算の復元も精度に課題があります。そのため、人間のレビューは依然として必要です。とはいえ、作業量を大幅に削減できる点は間違いありません。

リバースエンジニアリングの未来

この技術はN64に限った話ではありません。たとえば、PS1やPS2のゲームにも応用できます。また、マルウェア解析にも活用の余地があります。しかし、著作権の問題には注意が必要です。

さらに、セキュリティ監査での活用も期待されています。具体的には、ファームウェアの脆弱性発見に使えます。つまり、LLMがリバースエンジニアリングの民主化を進めているのです。そのため、今後も急速に発展する分野です。特に、GhidraなどのツールとLLMの連携が注目されています。

まとめ

LLMによるN64ゲームの逆コンパイルは、リバースエンジニアリングに革命を起こしています。ワンショットで人間が読めるCコードを生成できます。しかし、複雑なロジックではまだ課題が残ります。特に、今後のAIとリバースエンジニアリングツールの融合に期待が集まります。