10月12日、Divyaが「REA: New AI-Powered Reverse Engineering Tool Supports Ghidra, Hopper, and Claude Code」と題した記事を公開した。ゲーム「DX-Ball」のバイナリを解析し、元のx86ケース3,205件をパスし、コンパイル済み関数63バイトを再現——AIエージェントがバイナリ解析ツールを直接操作してリバースエンジニアリングを支援する時代が、OSSの登場によって現実のものになりつつある。
REAとは何か
REA(Reverse Engineer Anything)は、Claude CodeなどのAIエージェントをGhidra・Hopper・IDAといった既存のディスアセンブラ(バイナリを人間が読める形式に逆変換するツール)と橋渡しするオープンソースプロジェクトだ。連携には**MCP(Model Context Protocol)**を使用する。
MCPはAnthropicが策定したオープンプロトコルで、AIモデルが外部ツールやデータソースと標準化されたインターフェースで通信するための仕様だ。REAはこのMCPをリバースエンジニアリング領域に持ち込んだ実装であり、セキュリティ研究者がこれまで手作業で行ってきたバイナリ検査・コードトレース・証拠収集のワークフローをAIエージェントに委譲できる点が核心にある。
AIによるリバースエンジニアリング支援はセキュリティ業界でも注目度が高まっており、マルウェア解析・脆弱性調査・レガシーコードの読解といった用途での活用が期待されている。REAはその入口を、既存ツールの置き換えではなくインターフェースの提供という形で実現した。エージェントがGhidraやIDAを通じてバイナリを検査し、コードをトレースし、追加の証拠を要求するという設計思想が特徴的だ。
連携設定は npx rea-agents setup 一発で済む。このコマンドがMCPサーバーの登録、解析用プロンプトのインストール、既存設定のバックアップを一括処理する。エージェントを再起動する前に変更内容の確認・承認を求めるステップも挟まれる。対応クライアントはClaude Code、Codex、Cursor、Gemini CLI、Grok Buildで、手動登録によってその他のMCP互換クライアントも使用できる。
対応している解析対象の広さが実用的
REAが対応する解析対象は幅広い。
| 解析対象 | 主な出力 | 必要なツール |
|---|---|---|
| ネイティブバイナリ | 擬似コード、アセンブリ、文字列、シンボル等 | Ghidra / Hopper / IDA |
| JavaScript / Electron | モジュール、IPC関係、ソースマップ等 | Node.js と npm |
| .NETアセンブリ | メタデータ、CIL命令、ビルド比較 | 追加ツール不要 |
| Android APK | マニフェスト、クラス、逆コンパイルメソッド | headless JADXとJDK |
| ファームウェア | 領域特定、抽出アーティファクト | Binwalk / Unblob(Linux) |
| Webサイト | ページ構造、スクリプト、ネットワーク観測 | Chromeファミリーのブラウザ |
| Goバイナリ | 埋め込みコンパイラバージョン、モジュール情報 | Goのインストール不要 |
| プロセス動作 | 終了ステータス、ファイルシステム観測等 | Linux/macOS(ネイティブPTY) |
Electronアプリの解析ではレンダラー・プリロード・メインプロセスにまたがる動作のトレースが可能で、静的なJavaScript解析にネイティブデコンパイラは不要だ。Goバイナリも追加ツールなしに静的解析できる点は、Go製マルウェアや内製バイナリの調査において実用上の恩恵が大きい。
対応範囲の広さは、セキュリティ研究者がひとつのAIエージェントワークフロー上でモバイル・ファームウェア・Webと横断的に解析できることを意味する。従来はツールごとに手法が分断されがちだったリバースエンジニアリングの現場に、共通インターフェースをもたらす可能性がある点は注目に値する。
Windows上でのGhidraサポートは現時点で実験的という制限がある。また、ファームウェア抽出はLinux環境が必須だ。
REA自体の動作にはnpm と Node.js 22.x(22.19以降)、24.x(24.11以降)、または26以降が必要となる。
実績と注意点
プロジェクトの実績として、冒頭で触れたゲーム「DX-Ball」の再構築がある。元のx86ケース3,205件をパスし、コンパイル済み関数63バイトを再現したという結果は、AIエージェントがバイナリ解析の実務に耐えうる精度を発揮できることを示す具体的な事例だ。ただしこれは「すべての解析対象で同精度を保証する」ものではなく、あくまで検証済み再構築の一例として示されている。
セキュリティ面での注意点として2点ある。まず、REAはローカルで解析を実行するが、エージェントがツールの結果を受け取る以上、モデルプロバイダーのデータポリシーが別途適用されるため、完全オフラインでの動作は保証されない。機密性の高いバイナリを扱う場合は、利用するモデルプロバイダーのデータ取り扱いポリシーを事前に確認する必要がある。次に、静的なJavaScript・.NETの解析はアプリを実行しないが、ランタイムキャプチャは現在のユーザー権限でターゲットを起動・操作する可能性がある。
ライセンスはMITで、公認・合法的な調査研究を目的として設計されている。
プロジェクトはGitHub(morluto/rea)で公開されている。
詳細はREA: New AI-Powered Reverse Engineering Tool Supports Ghidra, Hopper, and Claude Codeを参照していただきたい。