「Reverse Engineer Anything」の略称であるREAは、AIコーディングエージェントとリバースエンジニアリングツールを接続し、ネイティブバイナリやアプリケーション、実行時の挙動を詳細に解析できるようにします。
このオープンソースプロジェクトは、ネイティブ解析プロバイダーとしてGhidra、Hopper、IDAをサポートしています。また、Model Context Protocol(MCP)を通じて、Claude Codeなどのエージェントと連携します。
REAは、既存の逆アセンブラに取って代わるものではありません。エージェントがソフトウェアを調べ、関連するコードを追跡し、追加の証拠を要求するためのインターフェースを提供します。
Morlutoによる解析結果には、裏付けとなるアーティファクトと制約事項が含まれます。これにより、エージェントはソースコードにアクセスできなくても、観測された挙動を説明したり、再構築した実装を開発・検証したりできます。
ネイティブの実行ファイルやライブラリに対しては、REAは疑似コード、アセンブリ命令、文字列、シンボル、呼び出し、参照を提供します。ネイティブコードの詳細な解析には、Hopper、Ghidra、IDAのいずれかをインストールして設定しておく必要があります。
各プロバイダーの機能や対応するホスト環境は異なり、WindowsでのGhidraのサポートは現時点では実験的なものです。このほか、Ghidraは16ビットのDOSプログラムを対象とした調査にも対応しています。
JavaScriptやElectronのワークフローでは、モジュール、インポート、ソースマップ、ルート、プロセス間通信の関係、ネイティブアドオンとの接続を復元します。

この機能により、調査担当者はレンダラー、プリロード、メインプロセスの境界をまたいで挙動を追跡できます。JavaScriptの静的解析には、ネイティブのデコンパイラは必要ありません。
一方、.NETの解析では、メタデータ、共通中間言語(CIL)の命令、宣言されたネイティブ依存関係、ビルド間の比較結果が得られます。
ツールキット全体では、Android APK、ファームウェア、WebAssemblyアーティファクト、保存されたネットワークキャプチャ、記録されたLinuxのクラッシュも対象とします。
ワークフローごとに前提条件があります。Androidのデコンパイルにはフル版のJDKとJADXが必要です。ファームウェアの抽出はLinux環境でのBinwalkまたはUnblobに依存します。一部のバイナリ診断では、利用者が用意したpwntoolsが求められます。ブラウザの検査にはChrome系ブラウザが必要です。
利用者は、`npx rea-agents setup`を実行して連携を設定できます。このセットアップでは、REAのMCPサーバーを登録し、互換性のある調査用の指示をインストールし、既存の設定をバックアップします。
エージェントを再起動する前に、提案された変更内容を確認して承認するよう求められます。対応クライアントはClaude Code、Codex、Cursor、Gemini CLI、Grok Buildで、その他の互換クライアントでも手動で登録すれば利用できます。
REAが対応する解析機能
| 解析対象 | 主な出力 | 必要なツール |
|---|---|---|
| ネイティブバイナリ | 疑似コード、アセンブリ、文字列、シンボル、呼び出し、参照 | Ghidra、Hopper、またはIDA |
| JavaScript / Electron | モジュール、インポート、ソースマップ、ルート、IPC、ネイティブアドオンとの関係 | Node.jsとnpm |
| .NETアセンブリ | メタデータ、CIL命令、ネイティブ依存関係、ビルド間の比較 | 追加の解析エンジンは不要 |
| Android APK | マニフェストの宣言、クラス、デコンパイルされたメソッド、参照 | ヘッドレスJADXとフル版JDK |
| ファームウェア | 特定された領域、抽出されたアーティファクト、ネイティブ解析への引き渡し | Linux上のBinwalkまたはUnblob |
| Webサイト | ページ構造、スクリプト、ネットワークの観測結果、要求されたスクリーンショット | Chrome系ブラウザ |
| Goバイナリ | 埋め込まれたコンパイラのバージョン、モジュール、置換、ビルド設定 | 組み込みの静的検査(Goのインストールは不要) |
| プロセスの挙動 | ターミナル出力、操作、終了ステータス、ファイルシステムの観測結果、実行間の比較 | ネイティブPTYを備えたLinux/macOS |
REAにはnpmと、Node.jsのバージョン22.x(22.19以降)、24.x(24.11以降)、または26以降が必要です。
ターミナルでのワークフローも、エージェント主導の調査と同じ解析の仕組みを利用します。たとえば、展開済みのJavaScriptアプリケーションのディレクトリやElectronのASARアーカイブを検査し、構造化されたJSON形式で結果を返すコマンドがあります。
REAは対象をローカルで解析しますが、解析結果が完全にオフラインにとどまることは保証されません。エージェントはツールの実行結果を受け取り、そのモデルプロバイダーには別途データポリシーが適用されるためです。
JavaScriptと.NETの静的検査では、アプリケーションは実行されません。ただし、実行時のキャプチャでは、現在のユーザーの権限で対象を起動したり、対象とやり取りしたりすることがあります。
プロジェクトによると、ゲーム「DX-Ball」の再構築に成功し、元のx86のテストケース3,205件に合格したほか、コンパイル済みの関数バイト63個を再現したといいます。
この成果が示すのは、検証済みの再構築が可能であることであり、あらゆる対象で正確に再現できることではありません。REAはMITライセンスで公開されており、許可を得た合法的な研究での利用を想定しています。
影響が出る前にサイバー脅威を阻止し、MTTRを21分短縮。ANYRUNのサンドボックスをSOCに導入。
翻訳元: https://gbhackers.com/rea-new-ai-powered-reverse-engineering-tool/