REA とは?インストールと安全な使い方
REA とは?
REA(Reverse Engineer Anything)は、リバースエンジニアリングのためのオープンソース MCP サーバーです。MIT ライセンスで github.com/morluto/rea に公開されています。ネイティブバイナリ、JavaScript / Electron アプリ、.NET アセンブリ、Web サイトなどを調べるツールに AI エージェントをつなぎ、機能の仕組みを説明させ、結論ごとの根拠を示せるようにします。プロジェクト自身の言葉では「気に入った機能を見つけたら、その仕組みをバイナリのレベルまで理解する」ためのツールです。
同じツールはターミナルからも使えます。プロジェクトによると解析はローカルで行われ、結果には結論ごとの根拠と限界が添えられます。
仕組み
エージェントは MCP 経由で REA を呼び出し、対象を調べて関係するコードを追跡します。REA は根拠つきの発見を返し、エージェントはそれをもとに追加の質問をしたり、動作を説明したり、自分のプロジェクト向けの実装を書いてテストしたりします。コマンドラインのツールも同じワークフローで動きます。
解析できるもの
README には 20 種類以上の対象が載っています。よく使われるものは次のとおりです。
| 対象 | REA が返すもの | 必要なもの |
|---|---|---|
| ネイティブバイナリ | 疑似コード、アセンブリ、文字列、シンボル、呼び出しと参照 | Hopper、Ghidra、IDA のいずれか |
| JavaScript / Electron | モジュール、インポート、ソースマップ、ルート、IPC、ネイティブアドオンの関係 | Node.js と npm |
| Web サイト | ページ構造、スクリプト、ネットワークの観測結果、指定したスクリーンショット | Chrome 系ブラウザ |
| .NET アセンブリ | メタデータ、CIL 命令、宣言されたネイティブ依存、ビルドの比較 | 追加不要(静的のみ) |
| Android APK | Manifest の宣言、クラス、逆コンパイルしたメソッドと参照 | ヘッドレスの JADX と完全な JDK |
| Go バイナリ | 埋め込まれたコンパイラのバージョン、モジュール、replace、ビルド設定 | 追加不要(内蔵) |
ほかにも WebAssembly、EVM バイトコード、SQLite データベース、ファームウェア、記録したネットワーク・パケットキャプチャ、プロセスの挙動などがあり、それぞれ要件が異なります。REA 自体には Node.js 22.x(22.19 以降)、24.x(24.11 以降)または 26 以降と npm が必要です。対象ガイド にまとめています。
コマンドひとつでセットアップ
Node.js と npm を用意して、次を実行します。
npx rea-agents setup
設定するエージェントを選び、提案された変更を確認して承認します。セットアップは REA の MCP サーバーと対応するワークフロー手順を追加し、既存の設定をバックアップします。終わったらエージェントを再起動してください。Claude Code、Codex、Cursor、Gemini CLI、Grok Build などに対応しています。各手順、手動登録、更新方法はインストールガイドで説明しています。
エージェントに頼む
README の例のプロンプトが典型的な使い方を示しています。
Understand how search works in the Notes app, show me the evidence, and build a
similar feature for my project.
アプリと機能は、調べる許可を得ている自分の対象に置き換えてください。
REA の用途と、用途ではないもの
プロジェクトは REA を、合法的な研究、教育、相互運用性、ソフトウェアの保存、そして自分が所有するか調べる許可を得たソフトウェアの解析のためのものとしています。免責事項では、セキュリティ研究、マルウェアやインシデントの解析、協調的開示を前提とした脆弱性調査、CTF、自分のソフトウェアのデバッグを想定用途に挙げています。
プロジェクトが支援せず、手伝うこともないもの:
- DRM、ライセンスチェック、アンチチートなどの技術的保護手段の回避
- ゲームのチート開発やオンラインサービスの改ざん
- テストの許可がないシステムでの認証やアクセス制御の回避
- プロプライエタリなソフトウェアの複製や、保護されたコード・素材の再現
必要な許可を得ること、法律とライセンスを守ることは利用者の責任です。IDA、Hopper、JEB などの商用ツールは正規に入手する必要があり、REA はそれらのライセンスを提供しません。本サイトも同じ方針で運営しています。掲載ルールをご覧ください。
このサイトについて
REA MCP は、みんなが REA でやったことを集めた、コミュニティ運営の独立したディレクトリです。REA プロジェクトやそのメンテナーとは提携・推薦・後援の関係にありません。公式の情報源は GitHub リポジトリとプロジェクトサイト rea.tools です。
人気の REA 活用事例
公開中の事例を、コミュニティの投票数、次に GitHub スター数の順に並べています。自動で更新されます。
- REA on Fedora-based Linux: setup notes and gotchas★ 156,486
- My local model setup for REA on Linux (one 12 GB GPU)★ 156,486
- Reducing token waste in REA workflows★ 156,486
- Outside-in leak check of a production Next.js and Stripe app★ 156,484
- REA (Reverse Engineer Anything)★ 156,483
- A stripped bzip2 build: what REA returned, checked against the source★ 156,483
- Benchmarks: REA on Linux across Node versions and five local models★ 156,482
- OpenBattlefield2: a clean-room engine reimplementation★ 41
- Reconstructing DX-Ball 1.07★ 40
- TH04 source reconstruction★ 29
FAQ
REA とは何ですか?
REA(Reverse Engineer Anything)は MIT ライセンスのオープンソース MCP サーバーで、github.com/morluto/rea で公開されています。ネイティブバイナリ、JavaScript / Electron アプリ、.NET アセンブリ、Web サイトなどを調べるツールに AI エージェントをつなぎ、機能の仕組みを説明させ、結論ごとの根拠を示せるようにします。
REA はどうやってインストールしますか?
Node.js と npm を用意して npx rea-agents setup を実行し、設定するエージェントを選び、提案された変更を確認して承認したら、エージェントを再起動します。セットアップは REA の MCP サーバーと対応するワークフロー手順を追加し、既存の設定をバックアップします。
どのエージェントで REA を使えますか?
ローカルの MCP サーバーに対応したエージェントなら使えます。セットアップは Claude Code、Codex、Cursor、Gemini CLI、Grok Build などに対応しており、それ以外のクライアントはプロジェクトのインストールガイドに従って手動でサーバーを登録できます。
Hopper、Ghidra、IDA は必要ですか?
必要なのはネイティブコードを深く解析するときだけです。JavaScript と .NET の静的な調査はネイティブ解析エンジンなしで動きます。セットアップは承認を得たうえで Hopper をインストールでき、Ghidra と IDA は既存のインストールを使います。商用ツールは正規に入手し、ライセンスを守って使う必要があります。
REA MCP は REA の公式サイトですか?
いいえ。REA MCP は REA の活用事例を集めた独立のコミュニティディレクトリで、REA プロジェクトやそのメンテナーとは提携・推薦・後援の関係にありません。公式の情報源は github.com/morluto/rea と rea.tools です。
REA はアプリをアップロードしますか?
プロジェクトの説明によると、REA は対象をローカルで解析します。ツールの結果はエージェントに渡り、エージェントが使うモデル提供者にはそれぞれのデータポリシーがあるので、機密性の高いものを解析する前に確認してください。
REA は何に使うもので、何に使わないものですか?
プロジェクトは REA を、合法的な研究、教育、相互運用性、ソフトウェアの保存、そして自分が所有するか調べる許可を得たソフトウェアの解析のためのものとしています。クラック、DRM やライセンスの回避、ゲームのチート、テストの許可がないシステムへの攻撃は支援しておらず、REA MCP も正当な用途だけを掲載しています。
REA を最新に保つには?
npx でセットアップした場合は npx rea-agents@latest setup を実行し、変更を確認してエージェントを再起動します。npm や Bun で CLI をグローバルにインストールした場合は rea update を実行し、表示されたセットアップコマンドでエージェントの登録を更新します。