1. プロジェクト概要
REA(Reverse Engineer Anything) は、オープンソースのMCP(Model Context Protocol)サーバーおよびコマンドラインツールで、AIエージェントがソフトウェアを調査し(ネイティブバイナリからElectronアプリ、Webサイト、Androidパッケージまで)、その仕組みを説明し、すべての結論に証拠を添えることを可能にします。すべてローカル環境で動作します。
2. 背景と位置づけ
作成の経緯
リバースエンジニアリングは通常、多くの専門ツール(逆コンパイラ、逆アセンブラ、パケットアナライザ、ブラウザ開発者ツール)を切り替えながら使い、結果を手作業でつなぎ合わせることを意味します。REAはAIコーディングエージェントに、これらのツールへの単一で一貫したインターフェースを提供するため、エージェントはソースコードなしでターゲットを調査し、機能の動作を説明し、類似の機能の構築を支援できます。
類似プロジェクトとの違い
- 多様なターゲットに対応する単一のMCP: 単一の逆コンパイラ向けの専用プラグインではなく、REAはバイナリ、アプリケーション、実行時動作を1つのサーバーでカバーします。
- 証拠優先の出力: 結果には、裏付けとなる擬似コード、アセンブリ、シンボル、参照、および既知の制限事項の注記が含まれます。
- プロバイダ非依存: ネイティブ解析にはHopper、Ghidra、IDAを使用でき、オフライン調査にはGNU objdumpまたはRizinを使用できます。
- ローカルかつ静的優先: 解析はローカルで実行されます。静的JavaScriptおよび.NET調査は、ファイルを実行せずに読み取ります。
- 二重インターフェース: 同じワークフローを、MCP経由でエージェントに、また
reaCLI経由で人間に提供します。
3. 機能カテゴリ
🧩 ネイティブバイナリとファームウェア
- 対象: ネイティブ実行ファイル、ELF、Go/Rust、WASM、EVMバイトコード、ファームウェアイメージ
- 例: Hopper/Ghidra/IDAによる擬似コードとアセンブリ、ELFセクション、セグメント、緩和策候補(pwntools)、Go/Rustコンパイラおよびクレート/依存関係情報、WASM検証とWAT形式(WABT)、EVMディスパッチセレクタと可変性、ファームウェア展開(Binwalk/Unblob)
- 目的: ソースコードがない場合にコンパイル済みコードを理解する。
🌐 WebおよびJavaScriptアプリケーション
- 対象: Webサイト、JavaScript、Electronアプリ
- 例: Electronアプリのモジュール、インポート、ルート、IPC、ネイティブアドオン、Webサイトのページ構造、スクリプト、ネットワークデータ、スクリーンショット(Chrome系ブラウザ)
- 目的: WebアプリまたはデスクトップWebアプリの構成を把握する。
📱 モバイルおよび.NET
- 対象: Android APKとデバイス、.NETアセンブリ、Flutter、Appleアプリバンドル
- 例: APKマニフェストと逆コンパイルされたメソッド(JADX + JDK)、デバイスログとファイル転送(adb)、.NETメタデータ、CIL命令、ビルド比較
- 目的: モバイルおよびマネージドコードソフトウェアを調査する。
📡 データ、ネットワーク、シグナル
- 対象: SQLite、パケットキャプチャ、ロジックアナライザ記録、プロセス動作
- 例: SQLiteテーブル、インデックス、ビュー、トリガー、行、TSharkによるpcap解析、sigrok-cliによるロジックシグナルデコード、実行時プロセスキャプチャ
- 目的: コードとともにデータストアと実行時動作を調査する。
🤖 エージェント統合
- 対象: Claude Code、Codex、Cursor、Gemini CLI、Grok Build、その他ローカルMCPサーバーをサポートするエージェント
- 例: ワンコマンドの
setup、インストール済みワークフロー手順、公開済みエージェントスキル、完全なreaCLI - 目的: 既に使用しているエージェントからツールを利用可能にする。
4. 主なハイライト
- 広範なターゲットカバレッジ: 1つのサーバーで、ネイティブコードからWebサイトまで、数十種類のターゲットを処理します。
- 証拠に裏付けられた結果: すべての回答に、裏付けとなる成果物と明記された制限が付属するため、調査結果の検証が容易です。
- ガイド付きセットアップ:
setupは、承認のための設定変更案を表示し、適用前に既存の設定をバックアップします。 - 既存ツールの活用: REAは、既に所有している逆コンパイラやユーティリティと統合します。それらをインストールまたは更新することはありません。
- 文書化されたショーケース: ケーススタディには、3,205件のオリジナルx86テストケースに合格したDX-Ball再構築、Notion向けElectronクリップボードブリッジ調査、TH04向けDOS弾丸リング計算が含まれます。
- ローカライズされたドキュメント: READMEは20言語で利用可能です。
5. 役割別のユースケース
- 一般開発者: 未文書化の動作を理解し、ライブラリやアプリが機能を実装する方法を研究し、相互運用性に取り組みます。
- DevOps/SRE: サードパーティのバイナリとデスクトップアプリを調査し、Go/Rustビルドの依存関係をレビューし、ネットワークキャプチャを調査します。
- セキュリティエンジニア: バイナリのトリアージ、ELF緩和策のレビュー、APK、ファームウェア、パケットキャプチャの解析を行います(調査を許可されたソフトウェアに限ります)。
- データ/研究科学者: SQLiteファイルからテーブルを抽出し、ファイル形式を文書化し、ソフトウェア保存作業を支援します。
- プロジェクトマネージャー: 競合製品またはレガシー製品の動作に関する、読みやすく証拠に裏付けられた要約を取得して、計画に役立てます。
6. はじめに
🔍 必要な情報を見つける
rea.tools/guides と rea.tools/showcase でガイドとショーケースを参照するか、リポジトリ内のドキュメント(docs/cli.md、docs/mcp-contracts.md)を確認してください。
⚙️ インストールと統合
Node.js 22.19+、24.11+、または26+とnpmが必要です。
# REAをエージェントに登録し、手順をインストール
npx rea-agents setup
# または、グローバルCLIをインストール
npm install --global rea-agents
rea --help
# ターミナルから抽出したJavaScript/Electronアプリを解析
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
# グローバルインストールを更新
rea update
セットアップまたは更新後、エージェントを再起動してください。
🤝 貢献
Issueを開くか、プルリクエストを作成してください。開発セットアップとチェックについては CONTRIBUTING.md を、脆弱性の報告については SECURITY.md を参照してください。
7. プロジェクト構造
rea/
├── src/ # コアソースコード(TypeScript)
├── bridge/ # ブリッジコンポーネント
├── native/windows/ # Windowsネイティブサポート
├── website/ # rea.toolsのソース
├── docs/ # ドキュメント、翻訳済みREADME、アセット
├── tests/ # テストスイート
├── scripts/ # メンテナンススクリプト
├── licenses/ # ライセンステキスト
├── third_party/ # サードパーティ素材
├── CONTRIBUTING.md
├── DISCLAIMER.md
├── SECURITY.md
└── THIRD_PARTY_NOTICES.md
docs/には、インストール、CLI、MCPコントラクト、プロバイダガイド、ロードマップ、アーキテクチャマップが含まれます。docs/readme/には、翻訳済みREADMEが含まれます。THIRD_PARTY_NOTICES.mdには、バンドルまたは参照されるコンポーネントのライセンスが一覧表示されます。
8. 関連エコシステム
- 解析プロバイダ: Hopper、Ghidra、IDA、GNU objdump、Rizin
- サポートツール: JADX、Apktool、adb、JEB、WABT、pwntools、Binwalk、Unblob、TShark、sigrok-cli
- 配布: rea-agents npmパッケージ
- エージェントスキル: skills.shのreverse-engineer-anything
- ショーケースリポジトリ:
N0zoM1z0/dx-ballとN0zoM1z0/th04 - エージェント: Claude Code、Codex、Cursor、Gemini CLI、Grok Build、その他MCP対応クライアント
9. ライセンス
- ✅ REAが作成したコードはMITライセンスで公開されています。使用、変更、再配布が可能です。
- ✅ 合法的な研究、教育、相互運用性、ソフトウェア保存、および所有または調査を許可されたソフトウェアの解析を目的としています。
- ❌ REAは、IDA Pro、Hopper、JEBなどの商用ツールのライセンスやキーを提供しません。これらはご自身で合法的に入手する必要があります。
- ❌ 調査を許可されていないソフトウェアの解析を目的としていません。
- ℹ️ サードパーティコンポーネントは独自のライセンスを保持します(
THIRD_PARTY_NOTICES.mdを参照)。 - ℹ️ 使用前に
DISCLAIMER.mdを確認し、公式リポジトリ、rea.tools、またはrea-agentsnpmパッケージからのみインストールしてください。
10. FAQ
Q: REAはどのAIエージェントで動作しますか?
A: Claude Code、Codex、Cursor、Gemini CLI、Grok Build、その他ローカルMCPサーバーをサポートするエージェントで動作します。登録するには npx rea-agents setup を実行してください。
Q: 逆コンパイラをインストールする必要がありますか?
A: ネイティブバイナリの擬似コードには、Hopper、Ghidra、IDAが必要です。他の多くのターゲット(JavaScript、.NET、Go/Rust、SQLite)は、組み込みまたは軽量な調査方法を使用します。REAがプロバイダをインストールすることはありません。
Q: データはマシンの外部に送信されますか?
A: 解析はローカルで実行されます。静的調査はファイルを実行せずに読み取ります。実行時キャプチャは、ご自身の権限でターゲットを実行します。
Q: REAを更新するにはどうすればよいですか?
A: グローバルインストールの場合は rea update を実行するか、npx更新後に npx rea-agents@latest setup を実行してエージェント登録を更新してください。
Q: 実際の動作はどこで確認できますか?
A: rea.tools/showcase で、DX-BallやNotionなどのケーススタディを参照してください。
11. クイックリンク
- リポジトリ: https://github.com/morluto/rea
- Webサイトとガイド: https://rea.tools
- npmパッケージ: https://www.npmjs.com/package/rea-agents
- インストールドキュメント: https://github.com/morluto/rea/blob/main/docs/installation.md
- 貢献ガイド: https://github.com/morluto/rea/blob/main/CONTRIBUTING.md
- コミュニティ: DiscordサーバーとGitHubのIssue/プルリクエスト(READMEからリンク)
12. まとめ
REAは、AIエージェントに、バイナリ、アプリケーション、Webサイト、実行時動作をリバースエンジニアリングするための、証拠に焦点を当てた単一のインターフェースを提供し、すべてローカルで実行されます。調査を許可されたソフトウェアを理解したい開発者、セキュリティエンジニア、研究者に適しており、ターゲットごとに別々のツールを使い分ける必要がありません。