mcpField
R
REA

REA

ローカル
github.com開発ツール402.2k今日更新

REA について

REAは、ソースコードなしでソフトウェアを調査する開発者やエージェント向けのコマンドラインツール兼MCPサーバーです。バイナリ、アプリ、ウェブサイト、実行時の挙動を分析し、根拠と結論の制約も示します。

主な機能

  1. 01ネイティブバイナリとアプリ形式の分析
  2. 02JavaScript、Electron、.NET、ウェブサイトの調査
  3. 03実行時の挙動とネットワークデータの記録
  4. 04根拠と分析上の制約の提示

活用シーン

  1. 01アプリ機能の仕組みを追跡
  2. 02バイナリやパッケージアプリの調査
  3. 03複数回のプロセス実行を比較

MCP 対応

REAはMCPクライアントにリバースエンジニアリング用ツールを公開し、対象の調査や関連コードの追跡を可能にします。CLIでも同じワークフローを利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"morluto-rea": {
"command": "npx",
"args": [
"-y",
"rea-agents"
]
}
}
}
起動コマンドnpx -y rea-agents

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmrea-agents6.8.0

ツール

170

掲載時のツール一覧 · 3 日前に更新

パラメーター型必須説明
nameanyいいえこの操作で使用する正確な名前。
commentanyいいえ通常のエントリーコメント。空にすると消去されます。
procedureanyはい
inline_commentanyいいえインラインのエントリーコメント。空にすると消去されます。

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

英語 · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano · Ελληνικά · മലയാളം

REA:あらゆるものをリバースエンジニアリング

バイナリ、アプリケーション、実行時の動作を横断してリバースエンジニアリングする、ひとつの MCP。

気になる機能を見つけたら、その仕組みをバイナリレベルまで理解しましょう。

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

ウェブサイト · ガイド · ショーケース

クイックスタート · REA の仕組み · 解析できる対象 · ショーケース · FAQ · ドキュメント

npx rea-agents setup

重要

REA は morluto/rea、 rea.tools、または rea-agents npm パッケージから入手してください。 インストールとリリースへのリンクは、これらの公式ソースからたどってください。似た名前の リポジトリやコピーされた README は、ダウンロードが公式であることの根拠にはなりません。


アプリで見つけた機能を自分のプロダクトにも取り入れたいと思ったことはありませんか?エージェントに REA を使って調査するよう依頼してください。ソースコードがなくてもアプリを調査し、その機能の仕組みを説明し、根拠を示して、プロジェクト向けの実装を作成できます。

REA は、ネイティブバイナリ、JavaScript および Electron アプリ、.NET アセンブリ、ウェブサイトを調査するツールにエージェントを接続します。同じツールはターミナルからも使用できます。解析はローカルで実行され、結果には各結論の根拠と制約が含まれます。

セットアップを行うと、REA がエージェントに登録され、対応するワークフロー手順がインストールされます。ネイティブ解析には、既存の Hopper、Ghidra、または IDA のインストールを使用できます。承認すれば、セットアップ時に Hopper をインストールすることもできます。静的な JavaScript 解析には、ネイティブ解析エンジンは必要ありません。

REA のウェブサイトを見る:セットアップ手順、図解ガイド、実際の事例をご覧いただけます。

クイックスタート

Linux では、Ghidra、JADX、ファームウェアツールの起動、および静的な JavaScript/Electron 解析で、プロセス所有者の確認を行うために、REA の PATH 上に procps 互換の ps が必要です。復旧手順は docs/installation.md の 「Linux owned-process prerequisite」に記載されています。

エージェントをセットアップする

Node.js と npm をインストールした状態で、次を実行します。

npx rea-agents setup

エージェントを選択し、提案された変更を確認して承認します。セットアップでは、REA の MCP サーバーと対応するワークフロー手順を追加し、既存の設定をバックアップします。その後、エージェントを再起動してください。

セットアップは Claude Code、Codex、Cursor、Gemini CLI、Grok Build、および その他のエージェントに対応しています。プロバイダーの設定と MCP の手動登録については、インストールとセットアップを参照してください。

エージェントに質問する
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.

Notes を、調べたい対象アプリと理解したい機能に置き換えてください。

ターミナルを使う

展開済みの JavaScript/Electron アプリのディレクトリまたは ASAR を調べます。

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

結果には、モジュール、インポート、Electron の境界、およびそれらを裏付ける証拠が含まれます。 パスは対象のものに置き換えてください。たとえば Windows では "D:/apps/example" のように指定します。

rea コマンドを通常利用できるようにインストールするには、次を実行します。

npm install --global rea-agents
rea --help

ネイティブ解析を行うには、先にプロバイダーを設定してください。ネイティブコマンド、プロバイダーの選択、 スナップショット、およびスクリプトについては、CLI と Evidence ガイドを参照してください。

REA を更新する

REA は頻繁に変更され、新しいリリースにはバグ修正が頻繁に含まれます。インストールを最新の状態に保ってください。

npm install --global または bun add --global でインストールした CLI の場合:

rea update

rea --update は、この検証済みワークフローのエイリアスで、同じグローバル出力フラグを受け付けます。他のコマンド制御と組み合わせる場合は、rea update を使用してください。

アップデーターのコマンドでは、stdout と stderr を合わせて最大 4 MiB まで保持します。コマンド終了後にサイズ超過のメタデータ応答は拒否されます。詳細なインストールは、診断情報を制限したうえで続行します。人間向けの進行状況出力では、ターミナルのバックプレッシャーを尊重し、送信済みの書き込みが完了するまで待機します。

Bun のグローバル更新には Bun 1.2.17 以降が必要です。それ以前の Bun を使用している場合は、rea update を実行する前に Bun を手動でアップグレードしてください。

エージェントの登録とスキルを更新するには、アップデートで表示されたセットアップコマンドを実行します。

npx を使用している場合は、次のコマンドでエージェントのセットアップを更新します。

npx rea-agents@latest setup

セットアップの変更を確認してから、エージェントを再起動してください。単発の CLI コマンドには、コマンドに続けて npx rea-agents@latest を使用します。Bun を使用する場合は、npx rea-agents@latest の代わりに bunx rea-agents@latest を使用してください。

REA の仕組み

エージェントは MCP を介して REA を呼び出し、対象を調べて関連するコードを追跡します。 REA は証拠を添えて調査結果を返します。エージェントはそれを使って追加の質問をしたり、動作を説明したり、実装を作成してテストしたりします。 CLI コマンドも同じワークフローを使用します。

REA の調査フロー:エージェントがローカルの対象について質問し、REA が解析ツールを使って調査とコード追跡を行います。エージェントは返されたコード、参照情報、不明点を使って説明、実装、テストを行います。

図をフルサイズで開く。

解析できる対象

REA には Node.js 22.x (>=22.19)、24.x (>=24.11)、または 26 以降と、npm が必要です。 追加のツールやホストのサポートは対象によって異なります。

対象REA が返す内容要件とガイド
デスクトップへのインストールランタイム候補、サポートファイル、コンポーネントマーカー、次の調査項目組み込みの制限付きディレクトリ/ヘッダー検査;デスクトップアプリケーション
ネイティブバイナリ疑似コード、アセンブリ、文字列、シンボル、呼び出し、参照Hopper、Ghidra または IDA;ネイティブ解析
オフライン ELF レイアウトセクション、セグメント、元のシンボル/再配置、静的な緩和策候補呼び出し元が用意する Linux x64 上の pwntools;バイナリ診断
Go バイナリ埋め込みコンパイラーバージョン、モジュール、置換、ビルド設定組み込みの静的 ELF/PE/thin Mach-O 検査;Go のインストールは不要
IL2CPP メタデータUnity の global-metadata.dat に含まれるアセンブリイメージ、型名とメソッド名、インデックス範囲バージョン 29、31、39 の組み込み静的デコード;Unity は不要
Rust バイナリ埋め込み cargo-auditable のクレート名、バージョン、ソース、依存関係のエッジ組み込みの静的 ELF/PE/thin Mach-O 検査;Rust バイナリ
WASM アーティファクト検証、セクション、正確なインポート/エクスポート WAT 形式、デコード済み WAT呼び出し元が用意する WABT 1.0.42;inspect_wasm_artifact
EVM バイトコードディスパッチセレクター、バイトオフセット、推定引数、可変性Linux x64 上のローカル raw/hex キャリア;オフライン EVM ガイド
SQLite データベーステーブル、列、インデックス、ビュー、トリガー、選択した通常テーブルの行ローカルのデータベース/WAL スナップショット;ネイティブ SQLite の制限を伴う Node.js 24.x >=24.15 または 26+
記録済み Linux クラッシュ生のノート、記録されたすべてのスレッドのレジスター/シグナル、任意のマッピング候補呼び出し元が用意する Linux x64 上の pwntools;任意で GDB/pwndbg;記録済みクラッシュ
JavaScript/Electronモジュール、インポート、ソースマップ、ルート、IPC、ネイティブアドオンの関係Node.js と npm;Linux:procps 互換の ps;アプリケーション解析
ウェブサイトページ構造、スクリプト、ネットワーク観測結果、要求されたスクリーンショットChrome 系ブラウザー;ブラウザー解析
保存済みネットワークキャプチャリクエスト、レスポンス、公開されたペイロード、ソース位置HAR または Fiddler Everywhere SAZ;ネイティブ mitmproxy 用の Linux 上の mitmdump;キャプチャガイド
.NET アセンブリメタデータ、CIL 命令、宣言されたネイティブ依存関係、ビルド比較なし(静的解析のみ);マネージコードガイド
Android APKマニフェスト宣言、クラス、逆コンパイル済みメソッド、参照Linux/macOS/Windows x64 上のヘッドレス JADX とフル JDK;Android ガイド
Android デバイスデバイス、パッケージ、プロセス、ログ、ダンプ、スクリーンキャプチャ、APK/ファイル転送呼び出し元が用意する adb(エミュレーターまたは実機);ADB ガイド
JEB プロジェクトエンジンに支えられたプロジェクトユニット、アーティファクトダイジェスト、型/メソッドの疑似コード呼び出し元が起動した MCP を提供する JEB クライアント。REA_JEB_MCP_URL で選択;JEB ガイド
Android リソースデコード済みマニフェスト、文字列テーブル、ロケール、バージョン情報呼び出し元が用意する Apktool ランチャー;リソースガイド
Flutter アプリDart スナップショットハッシュ、ABI ごとのライブラリダイジェスト、エンジンビルドの来歴なし(静的 APK 解析);Flutter ガイド
ファームウェア領域、抽出結果、ネイティブ解析への引き継ぎLinux 上の Binwalk/Unblob;ファームウェアガイド
記録済みパケット選択したフィールド、繰り返し値、フィルター、デコード方法ルールLinux:TShark 4.x + prlimit;キャプチャガイド
パケットの概要エンドポイント、DNS、TLS SNI、プロトコル分布、HTTP リクエスト呼び出し元が用意する tshark と capinfos(Linux で検証済み);pcap ガイド
記録済み論理信号デコーダーの注釈、サンプル範囲、診断情報Linux:sigrok-cli 0.7.2 + prlimit;信号記録
パッケージとリソースファイル一覧、ダイジェスト、plist、Apple バンドルの構造、抽出済みリソースアーティファクトと JavaScript のガイド、Apple アプリケーション
プロセスの動作ターミナル出力、操作、終了とファイルシステムの観測結果、実行比較ネイティブ PTY を備えた Linux/macOS;プロセスキャプチャ
静的な JavaScript および .NET の検査では、アプリケーションを実行せずに提供されたファイルを読み取ります。ランタイムキャプチャでは、ユーザー権限を使って選択した対象を実行または操作します。各ランタイムガイドで、その影響について説明しています。

オフラインでのネイティブバイナリ検査では、REA は呼び出し元が用意した GNU objdump と Rizin もサポートしています。プロバイダーのセットアップ、CLI コマンド、 Evidence の制限については、リバースエンジニアリングツールガイド をご覧ください。REA はどちらのプロバイダーもインストールまたは更新しません。

ネイティブ形式とホストのサポート状況はプロバイダーによって異なります。 Hopper と Ghidra のセットアップ、(任意のネイティブ MCP ブリッジを含む) IDA ガイド、Kuna デコンパイラーガイド、 および実験的な Windows Ghidra サポートをご覧ください。 Ghidra は16 ビット DOS の解析にも対応しています。 大きなバイナリを扱う場合は、 REA_GHIDRA_STARTUP_TIMEOUT_MS または REA_HOPPER_STARTUP_TIMEOUT_MS を使って プロバイダーの起動期限を延長してください。プロバイダーの選択については、 CLI ガイドをご覧ください。 最新の npm リリース以降に追加された機能については、リリースの提供状況 をご確認ください。

活用事例

DX-Ball のサウンドパン、Notion のクリップボードブリッジ、TH04 の弾幕リングの活用事例の図解

DX-Ball:サウンドパンの計算を再構築する

サウンド呼び出しから位置をパンに変換するヘルパー関数をたどり、命令を調べ、 不完全な擬似コードを C に変換します。この再構築は 3,205 件の 元の x86 のケースを通過し、コンパイル済み関数の 63 バイトすべてを再現します。

事例を読む · 再構築リポジトリ

Notion:Electron のクリップボードブリッジをたどる

レンダラーのクリップボード API を見つけ、preload と IPC を経由して メインプロセスまでたどり、リッチクリップボード形式を調べます。

事例を読む

TH04:DOS の弾幕リング計算を復元する

オリジナルの PC-98 ゲームの 16 ビット命令を調べ、固定角度と 照準角度の計算を復元し、再構築した C++ と 当時のコンパイラー出力を比較します。

事例を読む · 再構築リポジトリ

REA を使って興味深いものに取り組んだ方は、ぜひお知らせください。 対象、調べたかったこと、REA がどのように役立ったか、そして分かったことを添えて、 issue または pull request で事例を共有してください。

FAQ

REA を利用できるエージェントはどれですか?

ローカル MCP サーバーに対応しているエージェントであれば、どれでも利用できます。セットアップで 対応エージェントを設定します。それ以外のクライアントは MCP の手動登録で利用できます。

Hopper、Ghidra、または IDA は必要ですか?

ネイティブの詳細な解析には、いずれかが必要です。静的な JavaScript および .NET の調査は、ネイティブ解析エンジンなしで実行できます。セットアップでは、承認後に Hopper をインストールできます。Ghidra と IDA は、既存のインストールを使用します。プロバイダーのセットアップをご覧ください。

最初に Hopper を起動する必要がありますか?

操作で必要になったときに、REA が Hopper を起動します。macOS では、初回起動時にデモモードを選ぶか、ライセンスを有効化するよう求めるダイアログが表示される場合があります。最初の CLI/MCP 操作または無人ジョブを実行する前に、同じユーザーセッションでそのプロンプトに対応してください。必要に応じて、Hopper を手動で開いてください。Hopper の起動とトラブルシューティングをご覧ください。

skills.sh からスキルをインストールすると、何が行われますか?

スキルは、エージェントに調査手順を提供します。npx rea-agents setup を使って、REA の MCP サーバーを登録し、対応する手順をインストールしてから、エージェントを再起動してください。スキルのみのインストールをご覧ください。

REA はどのようなコードを返しますか?

ネイティブ解析では、擬似コードとアセンブリが返されます。JavaScript/Electron の解析では、モジュールとその関係が復元されます。エージェントはこれらの調査結果を使って実装を作成し、テストします。使用例では、具体的な例をご覧いただけます。

REA はアプリをアップロードしますか?

REA は対象をローカルで解析します。エージェントはツールの結果を受け取り、モデルプロバイダーには独自のデータポリシーがあります。

バグが発生した場合はどうすればよいですか?

まずアップデートしてください。最近のリリースですでに修正されている可能性があります。

npm install --global または bun add --global でインストールした CLI の場合:

rea update

npx でエージェントをセットアップした場合:

npx rea-agents@latest setup

エージェントを使用している場合は、セットアップの更新を完了してから、エージェントを再起動してください。同じタスクをもう一度試してください。問題が解決しない場合は、REA のバージョン、対象の種類、再現手順、エラー出力を添えてイシューを作成してください。

ドキュメント

まず、ウェブサイトの手順付きガイドをご覧ください。 正確なオプション、前提条件、結果の仕様については、以下をご覧ください。

脆弱性はSECURITY.mdから報告してください。

スターの推移

🎉 GitHub スター数 300,000 件 — ありがとうございます!

REA をご利用いただいている皆様、バグの報告や機能のリクエスト、ビルドのテスト、修正へのご協力をいただいた皆様に感謝します。

REA GitHub star history

免責事項

適切な利用に関するガイダンスについては、DISCLAIMER.md をご覧ください。

違法または無許可の利用に関する本プロジェクトの方針は、すべての REA のバージョン、配布経路、プラットフォームに適用されます。各コピーには、それぞれに適用されるライセンスが引き続き適用されます。

REA は、合法的な研究、教育、相互運用性、ソフトウェアの保存、およびご自身が所有するか、調査を許可されているソフトウェアの分析を目的としています。

貢献

REA へのご協力をお待ちしています!バグの報告や機能の提案はイシューを作成してください。コードやドキュメントの改善はプルリクエストを送信してください。

開発環境のセットアップとチェックについては CONTRIBUTING.md を、検証方法についてはテストを、プロジェクトの構成についてはアーキテクチャマップをご覧ください。

ライセンス

MIT

REA が作成したコードは MIT ライセンスの下で提供されます。サードパーティの素材には、それぞれ独自のライセンスと著作権表示が適用されます。依存関係の一覧、保持されているライセンステキスト、外部ツールの規約については、サードパーティの表示をご覧ください。

IDA Pro / Hex-Rays デコンパイラー、Hopper、JEB などの商用ツールは、適用されるライセンスに従って、適法に入手し、使用許可を得る必要があります。REA は、ツールのライセンス、キー、またはアクティベーションの権利を付与しません。トライアル版やデモ版にも、ユーザー、機能、自動化、出力の共有に関する制限を含め、ベンダーの規約が適用されます。クラック版、盗難キー、無許可のキー共有、ライセンス制限の回避は許可されていません。このガイダンスは、MIT ライセンスやサードパーティのライセンスを変更するものではありません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。