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とリバースエンジニアリングツールの融合に期待が集まります。
