Reverse Engineer Anything というプロジェクト:AI コーディング・エージェントを Ghidra/IDA Pro などに接続

REA Tool Connects Claude Code and Cursor to Ghidra and IDA Pro to Reverse Engineer Anything

2026/10/10 CyberSecurityNews — REA (Reverse Engineer Anything) というオープンソースプロジェクトにより、Claude Code/Cursor などの AI コーディングエージェントと、ソースコードを参照せずにソフトウェアを解析するツールを連携できる。このプロジェクトは、Ghidra/IDA Pro/Hopper を AI エージェント主導のワークフローに統合することで研究者を支援し、プログラムの動作を追跡するとともに、解析結果を裏付ける証拠を示しながら、その内容を説明できるようにする。

AI エージェントとリバースエンジニアリングを連携させる REA

REA は逆アセンブラを置き換えるものではなく、AI エージェントと解析ツールをつなぐ役割を果たす。解析対象はネイティブ・バイナリに留まらず、JavaScript/Electron アプリケーション/.NET アセンブリ/Android パッケージ/ファームウェア/Web サイト/一部の実行時の動作にまで及ぶ。また、スクリプトによる操作を好む研究者向けに、同じワークフローをターミナル・コマンドからも利用できるようにしている。

REA は Model Context Protocol (MCP) を使用し、AI エージェントがローカル・サーバを介して解析を要求できるようにする。それらのエージェントは、ツールに対して解析対象の調査を依頼し、関連するコードを追跡した上で、裏付けとなる証拠と制約事項が明示された解析結果を受け取る。その後も、追加の質問を実施し、得られた結果に基づく実装の作成とテストなども可能にする。

ネイティブ・バイナリの解析における REA は、擬似コード/アセンブリ命令/文字列/シンボル/関数呼び出し/参照情報などを返す。これらの情報は、研究者がソフトウェアの表面的な機能と、その背後にあるコードを関連付けるうえで役立つ。高度なネイティブ解析には、Ghidra/IDA/Hopper のいずれかがインストールされている必要があるが、承認を得た上でセットアップ時に Hopper をインストールすることも可能である。

このアプローチは、Cyber Security News の Ghidra を用いるリバース・エンジニアリングに関する記事で取り上げられた、解析ツールの役割を発展させたものである。REA が追加するのは、既存の解析プロセスを操作するためのエージェント・インターフェイスであり、基盤となるコード解析そのものが不要になるわけではない。

JavaScript/Electron を対象とする場合には、モジュール/インポート/ソースマップ/ルート/アプリケーションのプロセス間通信が、REA によりマッピングされる。.NET の静的解析では、メタデータ/中間言語 (IL) 命令/宣言されたネイティブ依存関係の確認が可能になる。いずれのワークフローにおいても、ネイティブの解析エンジンは必要ない。

利用者は、対応するバージョンの Node.js と npm をインストールした後に、npx rea-agents setup を実行することでセットアップを開始できる。セットアップでは、使用するエージェントの選択/変更内容の確認/登録の承認が求められる。その後に、対応するワークフローの指示ファイルがインストールされ、既存の設定がバックアップされる。セットアップ完了後は、エージェントの再起動が必要となる。

セットアップでサポートされるのは、Claude Code/Cursor/Codex/Gemini CLI/Grok Build などである。ローカル MCP サーバに対応する他のクライアントでも、手動登録による利用が可能である。REA の公式リポジトリにはインストール手順が記載されており、対応プラットフォームは選択した解析プロバイダに応じて異なることも説明されている。

プロジェクトが公開した事例が示すのは、証拠に基づくプログラムの再構築の様子である。DX-Ball のケース・スタディでは、復元したサウンドの位置計算処理が、元の x86 コードに対する 3,205 件のテストに合格し、コンパイル済み関数の 63 バイトを再現した。別の事例では、Notion のクリップボード処理を、Electron のレンダラ/プリロード層/メイン・プロセスにわたって追跡している。

ただし、これらはプロジェクト側が報告した実証例であり、あらゆる解析対象を完全に再構築できることを証明するものではない。これらの事例は、研究者が AI モデルの出力と実行時の検証を組み合わせた、以前の AI 支援による XLoader マルウェア解析に関する報告を補完するものである。

REA は解析対象をローカルで処理するが、その解析結果は AI エージェントに渡される。解析結果の取り扱いには AI モデル提供元のデータポリシーが適用されるため、ローカルで実行したからといって、すべての解析結果が端末内に留まるとは限らない。

JavaScript/.NET の静的解析では、アプリケーションを実行せずにファイルが読み取られる。一方、実行時の情報収集では、利用者の権限を用いた解析対象の起動や操作が可能になる。疑わしいソフトウェアを調査する研究者は、解析を開始する前に、これらの動作モードの違いを理解しておく必要がある。

REA という名称とは異なり、実際には解析対象/プラットフォーム/依存関係などに制約がある。このツールの価値は、研究者の疑問を検証可能なコードやテスト可能な解析結果と結びつけながら、証拠/適切な権限/人間によるレビューを重視した調査を支援する点にある。