REA
クレームが出荷されたバイナリやパッケージ、逆コンパイル、 パッシブなアプリケーションランタイム証拠、または 利用可能なソースでは確立されていない動作との比較に依存する場合は、REAを使用します。完全なソースリポジトリの通常の分析には、通常のリポジトリツールを使用し、REAの準備コマンドやプロバイダーコマンドを実行しないでください。
必要なときのみ接続
このスキルをインストールすると指示が提供されますが、REA MCPサーバーを登録したり、分析エンジンをインストールしたり、すでに実行中のエージェントにツールを追加したりするわけではありません。
REAツールが利用可能で、その登録が古くなっていないことがわかっている場合は、直接ターゲットに進んでください。調査のたびに診断やセットアップを実行しないでください。接続されているサーバーの実際のツールリストと入力スキーマを使用してください。リポジトリのメインからインストールされたスキルは、古いnpmリリースにはない機能を説明する場合があります。サーバーが保持参照を宣伝しない場合は、完全なインライン証拠を保持してください。
ツールがない場合、呼び出しがクライアントによってブロックされている場合、または必要なプロバイダーが利用できない場合は、接続と復元をお読みください。観察されたブロッカーを診断し、有用なサポート作業を続け、修理後に元のタスクを再開してください。クライアントの承認、シェルPATH、登録、エンジンの可用性には異なる修正方法があります。すべてに対してセットアップを繰り返さないでください。
- REAまたはクライアントの設定を変更せずに診断します。
npxはパッケージをダウンロードしてnpmのキャッシュに書き込む場合があります。Codexの場合は、npx -y rea-agents@latest doctor --client codex --jsonを実行します。現在サポートされているクライアントに置き換えてください:claude_code、claude_desktop、codex、cursor、gemini_cli、windsurf、devin、opencode、antigravity、copilot_cli、commandcode、vscode、grok_build、omp、またはgrok_bot。grok_botにはローカルファイル登録がありません。doctorはGrok Botチャットステップを報告し、セットアップはmcp.jsonを書き込みません。クライアントが不明な場合は、doctor --jsonを使用してセットアップスコープを選択する前に、その登録結果を検査してください。 - 理由を区別します。登録の欠落、不正な形式、または古いものは、スコープ設定された設定の修復が必要です。アクティブセッションにツールがない適切な登録は、再起動/再接続が必要です。doctorは現在のエージェントが接続したことを証明できません。プロバイダーの欠落は、そのプロバイダーを必要とするタスクにのみ影響します。静的なJavaScriptの検査にはHopperもGhidraも必要なく、Androidの検査には別途JADX/Javaの前提条件が必要です。
- 設定の修復には、読み取り専用の計画を準備します:
npx -y rea-agents@latest setup --client codex --dry-run --json。現在のクライアントのIDを使用し、正確な提案されるパス、バックアップ、変更を表示し、セットアップが設定を書き込んだりHopperをインストールする前に承認を得てください。セットアップは通常、一致するバンドルスキルもインストールします。その置き換えをレビュー計画に含めてください。承認後、同じスコープをnpx -y rea-agents@latest setup --client codex --yesで適用します。その別個のインストールが必要で明示的に承認された場合にのみ--install-hopperを追加します。 - 影響を受けるエージェントを再起動/再接続します。セッションにREAツールが実際に表示されることを確認し、元の調査を再開します。それでも表示されない場合は、セットアップを繰り返すのではなく、クライアントのMCP起動エラーを調査します。
REAのセットアップは、Node.js、npm、Homebrew、Java、Ghidra、IDA、JADX、Binwalk、またはUnblobをインストールまたはアップグレードすることはありません。既存の前提条件を使用し、MCP登録を修復するために関連のないソフトウェアをインストールしないでください。サポートされていないクライアントの場合は、バージョン固定の rea-agents パッケージを使用した手動のstdio登録を使用するか、CLIを介して続行します。
オペレーターが提供するJavaScriptツリーまたはASARの具体的なCLIフォールバックは次のとおりです:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
MCP登録やネイティブエンジンは必要ありません。返された証拠、グラフ、制限、不明点をMCP結果と同様に注意深く読み取ってください。CLIは証拠レコードを直接返します。このフォールバックはMCPが設定されていることを証明するものではありません。ネイティブCLIタスクには、選択したエンジンが依然として必要です。既存の rea CLIを優先します。インストールされておらず、REAパッケージの取得が許可された範囲内にある場合は、代わりに npx -y rea-agents@latest を使用します。設定の修復は読み取り専用のセットアップ計画から始まります。許可された変更を適用する前に、パス、バックアップ、スキルの置き換えを表示します。既存の承認とターゲット実行の境界を維持します。REAのセットアップは、Node.js、npm、Homebrew、Java、Ghidra、IDA、JADX、Binwalk、またはUnblobを含む、関連のないソフトウェアをインストールまたはアップグレードすることはありません。
最初にターゲットをルーティング
ユーザーが提供したターゲットから最初のツールを選択します。アクティブターゲットのネイティブまたはアーカイブワークフローには open_binary を使用します。ターゲットフリーツールは、独自の明示的なパスまたはエンドポイントを受け取り、それを必要としません。
-
ASARまたは抽出されたJavaScript/Electronツリー:
analyze_javascript_application。 -
アーカイブ/パッケージメンバーインベントリ(ZIP/APK/IPA/MSIX/AppXまたはDMG): 提供されたローカルパスで
open_binaryを使用します。グラフと調査結果が質問に答えるのに役立つ場合はinspect_artifactを使用します。 -
Android APKコード、クラス、メソッド、または着信参照:
inspect_android_package、次に宣伝されている場合に焦点を当てたAndroidツール。 アーカイブメンバーインベントリは引き続き上記のアーカイブルートを使用します。 -
マネージドPE/CLIアセンブリ:
inspect_managed_artifact。 -
ファームウェアイメージ:宣伝されている場合は
inspect_firmware_regions。抽出が要求された場合は、呼び出し元が選択した新しい絶対出力ディレクトリを指定してextract_firmwareを使用します。これらのツールは、Linux上の呼び出し元が提供するBinwalk/Unblobを使用します。ファームウェアガイドを参照してください。 -
.NET NativeAOT PE/ELF:ネイティブGhidra分析。ネイティブコードは疑似コードを生成できます。オプションのメタデータ回復とサポートされているホスト/レイアウト境界については、
references/native-and-artifacts.mdのNativeAOTワークフローを参照してください。 -
ユーザー所有のブラウザページがすでに開いている場合:
list_browser_targets。 -
エージェントが実行する必要があるブラウザアクション(クリック、入力、移動): 宣言されたアクションで
capture_browser_scenarioを使用します。接続/起動と焦点を絞ったフォローアップブラウザツールについては、ランタイム観測を参照してください。 -
Fiddler Everywhereトラフィックまたはネイティブ
.sazキャプチャ:Fiddlerワークフローをお読みください。保存されたSAZをinspect_web_network_captureとformat: "saz"で検査します。ライブトラフィックについては、Everywhereの別のMCPサーバーに接続します。 -
保持されたHAR/SAZ/ネイティブmitmproxy/aioquic qlogキャプチャ:
inspect_web_network_capture。必要に応じて元のレコード順序を選択します。URLを取得したりライブ属性を主張したりせずに、プロデューサーフィールドとバイト/ナンバーサイドカーを検査します。正確なアップストリームプロファイルと資格情報の除外については、履歴キャプチャを参照してください。Qlogサポートはaioquic 1.5.0 JSON 0.3から始まります。ストリームカバレッジとエンドポイント損失宣言は、ボディを回復したりネットワーク損失を確立したりしません。詳細サマリーを優先し、次に種類qlogトレース/ストリームページを選択します。コントリビューション/レンジページには、1つのトレース、ストリームID、および方向を選択します。ファクトは、選択前のすべての記録されたイベントのスコープを保持します。他のqlogレイアウトとPCAP相関はサポートされていません。 -
ユーザー所有のElectronランタイムがすでに開いている場合:
list_electron_targets。electron-mainインスペクターを試みる前に、inspect_electron_fusesでパッケージ化されたヒューズを確認します。無効になっているEnableNodeCliInspectArgumentsは、アプリが--inspectを無視することを意味します。 -
パケットフィールド発見:
inspect_packet_fieldsは、inspect_packet_captureのフィールドを選択する前に、インストールされているプロトコルとフィールド名/タイプを検索します。関連するレコードをクエリ/ページングします。登録は観測されたトラフィックを確立しません。 -
記録されたパケットキャプチャ:選択されたTSharkフィールド、表示フィルター、およびデコードアズルールで
inspect_packet_captureを使用します。Linux、util-linux prlimit、およびREA_TSHARK_COMMANDが必要です。キャプチャガイドを参照してください。パケット制限は、フィルタリング前の入力パケットをカウントします。出力はデフォルトで50の一致フレームになります。後のページにはmatch_offset/match_limitを使用するか、完全な一致出力には明示的なnull制限を使用します。ソースダイジェストをページ間で保持します。これはライブキャプチャを実行しません。 アドレス/DNS/SNI/プロトコルサマリーには、MCP詳細サマリーでinspect_pcap_captureを使用し、次に保持された種類pcapページを使用します。Wireshark 4.x tsharkとcapinfos、およびLinux prlimitまたはWindows Job Objectsが必要です。パケットサマリーを参照してください。アドレスページには正確なDNS質問を選択します。ページの枯渇はネットワークの完全性を証明しません。これは録音を読み取り、トラフィックを取得しません。 -
デコーダー発見:
inspect_signal_decodersは、インストールされているデコーダーIDまたは選択されたデコーダーヘルプ(チャネルとオプションを含む)を検索します。設定を選択する前に関連する詳細をクエリおよびページングします。これはハードウェアをスキャンしません。 -
記録されたロジック/シグナルトレース:明示的なデコーダー、チャネル、プロトコル設定で
decode_signal_recordingを使用します。Linuxでutil-linux prlimitを使用する場合、REA_SIGROK_COMMANDを介してsigrok-cli 0.7.2を提供します。録音ガイドを参照してください。出力はデフォルトで50のリテラル行になります。アノテーションクラスを選択し、line_offset/line_limitでページングするか、残りのすべての出力には明示的なnullを使用します。ウィンドウカウントは表示行であり、アノテーションやサンプルではありません。ソースダイジェストをページ間で保持します。これは既存のファイルを読み取ります。ハードウェア信号を取得しません。 -
明示的なローカルWebAssemblyアーティファクト:
inspect_wasm_artifact。REA_WABT_BIN_DIRECTORYを介してWABT 1.0.42を提供します。正確なバイト/ツールIDとデコードされたWATを保持します。JavaScriptグルーと候補パスを明示的に選択し、URL/パスのあいまいさを保持します。暗黙のフェッチやターゲット実行はありません。WATは元のソースではありません。WASMガイドを参照してください。 -
明示的なローカルEVMバイトコードキャリア:呼び出し元が選択した
rawまたはhexエンコーディングでinspect_evm_interfaceを使用します。キャリア/デコードされたダイジェストを保持し、セレクター、引数文字列、可変性を推測された候補として扱います。これはチェーンルックアップやターゲット実行を実行しません。完全な推測インターフェースについては、16進数や重複するstdoutなしで、サポートを発見しdetail: "summary"を選択します。完全な証拠は元のIDの下に保持されたままになります。正確な関数またはbytecode_hex/stdout/stderrページには、返されたparent_evidence_idを使用します。候補カバレッジはインターフェースの完全性を確立しません。EVMバイトコードガイドを参照してください。 -
埋め込まれたGoコンパイラ、モジュール、またはビルド設定メタデータ:明示的なローカルファイルで
inspect_go_binaryを使用します。この組み込みのターゲットフリー検査には、Goのインストールや逆アセンブラは必要ありません。生のモジュールバイトとソース範囲を保持します。メタデータがないことはバイナリがGoではないことを証明せず、解析されていないテキストレコードは明示的なままです。Goバイナリガイドを参照してください。 -
埋め込まれたcargo-auditable Rust依存関係メタデータ:明示的なローカルELF、PE、またはシンMach-Oファイルで
inspect_rust_binaryを使用します。この組み込みのターゲットフリー検査には、Rustのインストールや逆アセンブラは必要ありません。パッケージの順序、依存関係インデックス、およびセクションファイル範囲を保持します。.dep-v0セクションがない場合はnullメタデータであり、バイナリに依存関係がないことの証明ではありません。rustcコミットハッシュは、読み取り専用の/rustc/<40-hex>/パスからの推測です。Rustバイナリガイドを参照してください。 -
明示的なローカルSQLiteデータベーススナップショット:
inspect_sqlite_database。ネイティブSQLite制限を提供するNode.js 24.x >=24.15または26+で検査します。最初にスキーマを読み取ります(デフォルトでコンパクトなインベントリ)。または、行が必要な場合は正確な通常のテーブルとcolumnsを選択します。デフォルトは選択されたテーブルのスキーマと20行です。完全な保存スキーマにはschema_scope: "database"を要求します。データベースと既存の兄弟WALの両方のIDを保持します。行サンプルは切り捨てを報告し、順序は指定されていません。ライブデータベース/WALペアがアトミックにコピーされたと想定するのではなく、静かなスナップショットを使用します。SQLiteガイドを参照してください。 -
オフラインレイアウト、シンボル、再配置、または静的軽減証拠のための明示的なLinux ELFファイル:
inspect_binary_layout。このターゲットフリー操作は、逆アセンブラデータベースを開かずに、呼び出し元が提供するpwntoolsを使用します。その生の場所と推測/カバレッジの制限を保持します。オフラインバイナリガイドを参照してください。 -
提供されたLinux x86-64 ELFコア:
inspect_recorded_crash。ライブターゲットを開かずに、記録されたすべてのスレッド、生のノート、およびソースにバインドされたレジスタを読み取ります。履歴PIDはライブプロセスを選択しません。コアのみのマッピング候補が役立つ場合にのみinclude_debugger_contextを要求します。記録されたクラッシュガイドを参照してください。 -
PEリソースタイプ/名前/言語ツリーと静的なアイコングループ参照:明示的なパスで
inspect_pe_resourcesを使用します。このポータブル操作にはアクティブなターゲットやエンジンは必要ありません。不透明なペイロードはファイル範囲とSHA-256を保持します。 -
ネイティブ実行可能ファイル、ライブラリ、または分析データベース:
open_binaryを使用し、次に焦点を絞った分析ツールを直接呼び出します。メタデータまたはインベントリコンテキストが有用で、選択したプロバイダーから利用可能な場合はbinary_overviewを呼び出します。
既存のIDA MCP構成の場合は、元の入力バイナリと provider_id: "ida" を指定して open_binary を使用します。.idb または .i64 データベースを渡さないでください。レガシーアタッチプロファイルは、SHA-256ですでに開いているGUI入力をバインドし、そのデータベースを開いたままにします。モダンh...