スキル

REA:agent でネイティブバイナリ、Electron アプリ、.NET アセンブリ、Web サイトをリバースエンジニアリング

MCP サーバーを通じて agent にネイティブバイナリ、JavaScript/Electron アプリ、.NET アセンブリ、Web サイトのリバースエンジニアリングを行わせるのに最適。使用前に Node.js のバージョン要件(22.x ≥22.23.4、24.x ≥24.22.1、または 26.12.1+)を確認する必要があり、setup は agent の設定を書き換え、ネイティブ分析は既存の Hopper/Ghidra/IDA に依存する。

公式ソース · morluto/rea

インストール

npx rea-agents setup

どんな人に向いているか

REA("Reverse Engineer Anything")は、MCP サーバーを通じてリバースエンジニアリングの能力を agent に提供します。対象はネイティブバイナリ、JavaScript/Electron アプリ、.NET アセンブリ、Web サイトの挙動です。会話の中で直接、バイナリファイル、Electron アプリ、Web サイトを分析したいユーザーに向いています。

前提条件:ローカルマシンに Node.js 22.x(>=22.23.4)、24.x(>=24.22.1)または 26.12.1 以上、および npm が必要です。ネイティブ分析では、既にインストール済みの Hopper、Ghidra、IDA を利用できます。setup の承認後は Hopper のインストールを代行してもらうことも可能です。静的な JavaScript および .NET 分析にはネイティブエンジンは不要です。Linux で静的な JavaScript/Electron 分析を行うには、PATH 上に procps 互換の ps が必要です。

REA は、ローカル MCP サーバーをサポートする任意の agent と組み合わせて使えます。公式の説明では、setup が Claude Code、Codex、Cursor、Gemini CLI、Grok Build などをサポートするとされています。どの OS をサポートするか、また具体的なファイル形式の対応範囲についての記述はなく、使用前に公式リポジトリで確認することをおすすめします。

3 分で最初の試用を完了する

公式が推奨するメインの方法は、npx で setup を直接実行することです:

  1. バージョン要件を満たす Node.js と npm がインストール済みであることを確認します(Linux では ps が PATH 上にあることも確認)。
  2. ターミナルで以下を実行します:
npx rea-agents setup
  1. setup は設定対象の agent を選択させ、実施する変更を表示して承認を求めます。承認すると、REA の MCP サーバーと対応するワークフロー指示を追加し、既存の設定をバックアップします。
  2. agent を再起動すると、REA を呼び出せるようになります。

グローバルインストールに変更することもできます:npm install --global rea-agents を実行した後、同様に setup を実行します。ただしこれは公式が示すもう一つの方法であり、メインの方法はあくまで npx rea-agents setup です。

最初の試用では、自分が所有しリスクの低いローカルバイナリファイルを選び、読み取り専用の分析タスク(例:agent にそのバイナリの構造とエクスポートシンボルを説明させる)を行うことをおすすめします。具体的なツール名や出力の形は agent 内で実際に利用可能なツールに依存し、それらは項目ごとには示されていません。注意:setup 自体が選択した agent の設定ファイルを変更します(公式の説明ではバックアップするとされています)。承認前に表示される変更内容を読んでください。Ghidra/IDA に依存するネイティブ分析では既にインストールされている必要があり、Hopper のインストール承認はシステムを変更する操作です。分析実行時にバイナリがどのプロセスによって読み取られたり実行されたりするかについては記述がなく、不明です。

使用例

例 1:ローカルの .NET アセンブリを分析する。agent にタスクを依頼します:「REA を使って MyApp.exe という .NET アセンブリを分析し、主要な型とメソッドを列挙して」。このシナリオは静的な .NET 分析を利用し、公式の説明によれば Hopper/Ghidra/IDA などのネイティブエンジンは不要で、procps の ps にも依存しません。期待できる結果は、agent が REA の MCP ツールを使ってアセンブリの構造説明を返すことです。出力の具体的な粒度については記述がありません。

例 2:Electron アプリを分析する。シナリオ:Electron アプリの内部挙動を知りたい。agent に依頼します:「REA を使ってこの Electron アプリの JavaScript を分析して」。このシナリオは静的な JavaScript 分析を利用します。Linux では、まず PATH に procps 互換の ps があることを確認してください。期待できる結果は、アプリのスクリプトに対する分析結果です。ネイティブバイナリ部分を含む同種のタスクでは、既にインストール済みの Ghidra/IDA/Hopper、または承認を経てインストールされた Hopper が使われます。

使用上の境界

  • 設定の副作用:setup は選択した agent の設定ファイルを変更し、ワークフロー指示を追加します。公式の説明では既存設定をバックアップするとされています。Hopper のインストールにはあなたの承認が必要です。
  • 実行環境:特定バージョンの Node.js と npm が必要です。Linux の静的 JavaScript/Electron 分析には procps 互換の ps が必要です。
  • ネイティブ分析の依存関係:既に持っている Hopper、Ghidra、IDA を使用します。setup は承認を経て Hopper をインストールできます。
  • クライアントの前提:agent がローカル MCP サーバーをサポートしている必要があります。設定後は agent の再起動が必要です。
  • 未確認の情報:分析中にユーザーのファイルを読み書きするか、コマンドを実行するか、ネットワークにアクセスするかについては、公式の記述がありません。対応するテキスト言語とバイナリ言語の範囲、対応 OS も記述には含まれていません。使用前にセキュリティ上の懸念がある場合は、公式リポジトリでこれらの挙動を確認してください。