
エージェントを使って、アプリの動作からネイティブバイナリまで、あらゆるものをリバースエンジニアリング。
English · 简体中文 · 日本語 · 한국어 · العربية
気になる機能を見つけ、仕組みを理解し、自分の形で実装する。
クイックスタート · バイナリから動作へ · ツールカタログ · 仕組み · FAQ
curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash
アプリの気になる機能を自分のプロダクトにも取り入れたいと思ったことはありませんか。ソースコードがなくても、そのアプリをコーディングエージェントに渡せます。REA を使えば、エージェントが機能を調査して仕組みを理解し、あなたの技術スタック、デザイン、要件に合わせた形で実装できます。
REA はこの流れをひとつの CLI / MCP サーバーで実現します。エージェントはコンパイル済みのアプリを調べ、機能の流れを追い、分かったことを通常のコーディング作業に活用できます。複雑なリバースエンジニアリングツールは REA がひとつのインターフェースの裏側で扱います。
npx rea-agents setup
次のように依頼します:
メモアプリをリバースエンジニアリングしてください。
検索の仕組みと判断の理由を示し、私のプロジェクト向けに同様の機能を実装してください。
メモアプリは例にすぎません。調べたいアプリを指定するか、まず概要から始めるよう依頼できます。
| 逆コンパイル | 理解 | 再現 |
|---|---|---|
| ネイティブアプリや実行ファイルから、プロシージャ、疑似コード、アセンブリ、文字列、シンボル、セグメント、メタデータを復元します。 | 呼び出し元、呼び出し先、クロスリファレンス、コールグラフをたどり、機能やアルゴリズムの実際の動作を説明できる状態にします。 | エージェントが得た知見を、あなたの技術スタック、画面、要件に合うプロダクト機能へ変えます。 |
REA は調査をバイナリ上の根拠に結び付けます。元のソースコードを復元したり、アプリ全体を自動複製したりするとは主張しません。
| エージェント向け | コンパイル済みアプリについて質問し、推測ではなく根拠を集めさせることができます。 |
| CLI と MCP | ターミナルとコーディングエージェントから同じリバースエンジニアリング機能を使えます。 |
| 複雑さを処理 | ツール設定、アプリの読み込み、調査の維持、終了後のクリーンアップを REA が担います。 |
| 一連の調査に対応 | 最初の概要から疑似コード、呼び出し関係、型、実装の手掛かりまで掘り下げられます。 |
| ローカルで解析 | 解析は Mac 上で実行され、REA がバイナリをホスト型解析サービスへ送ることはありません。 |
| コンテキストを維持 | 質問ごとに解析を最初からやり直さず、複数のバイナリを続けて調査できます。 |
npx --yes rea-agents@latest setup
エージェントに REA のセットアップを依頼してください。Mac を確認し、必要なインストールを説明して承認を求め、システムプロンプトを案内します。完全なツールを読み込むため再起動を求められた場合は、セットアップ後に再起動してください。
rea setup は変更計画を表示し、確認後に適用します。Homebrew、Node.js、npm をインストールまたは更新しません。Hopper がない場合は公式パッケージを提案します。Hopper は別製品で、ライセンスは別途必要です。
64 ビット Linux に Ghidra 12.1.4 PUBLIC と完全な 64 ビット JDK 21 がすでにある場合、Setup は承認後に GHIDRA_INSTALL_DIR と任意の JAVA_HOME も登録できます。REA は Ghidra や Java をダウンロード、インストール、変更しません。Ghidra プロバイダーは隔離された読み取り専用 headless セッションで、インベントリ、逆コンパイル、アセンブリ、呼び出し関係、型付き参照、xref、CFG、関数 dossier を提供します。GUI 状態と変更操作は引き続き利用できません。
Ubuntu 24.04+、Fedora 41+、64 ビット Arch Linux では、REA が公式の DEB、RPM、または Arch パッケージを取得し、公開されたサイズとチェックサムを検証してから apt-get、dnf、または pacman で依存関係を解決します。root 以外では pkexec がシステム承認を表示します。REA は sudo を呼び出しません。
既定のランチャーは /opt/hopper/bin/Hopper です。別の場所では HOPPER_LAUNCHER_PATH を設定してください。Doctor が解析エンジン不足を報告した場合は ldd /opt/hopper/bin/Hopper | grep 'not found' を実行し、不足ライブラリを入れて rea setup を再実行します。REA は対応する Hopper デモ版を専用 Xvfb ディスプレイで起動し、解析セッションごとに Hopper が提示するデモモードを選択します。デスクトップの DISPLAY や有料ライセンスは不要ですが、デモ版にはベンダー所定の制限があります。~/.local/bin も PATH に追加してください。
# 1. REA をセットアップ
curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash
npx --yes rea-agents@latest setup
macOS やインストーラーから確認を求められた場合は、その操作を完了してから同じコマンドをもう一度実行してください。
Setup は Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、Devin を検出します。検出した最初の 6 クライアントは自動設定しますが、Devin はローカル MCP 設定境界が文書化されていないため、検出結果を報告するだけで変更しません。設定されたクライアントを再起動して REA を読み込んでください。
アプリは名前で指定できます。コーディングエージェントがアプリを探し、REA に必要なプログラムファイルを渡します。
REA でメモアプリをリバースエンジニアリングしてください。検索機能の仕組みと
根拠を示し、SQLite を使って私のプロジェクト向けに同様の機能を実装してください。
問題がある場合は次を実行します:
npx -y rea-agents@latest doctor
rea uninstall
rea uninstall --purge-data
メモアプリをリバースエンジニアリングし、オフライン検索機能の仕組みを説明して、
TypeScript と SQLite を使って私のプロジェクト向けに実装してください。
| 手順 | エージェントの処理 | REA ツール |
|---|---|---|
| 1 | バイナリを開いて識別 | open_binary, binary_overview |
| 2 | オフライン検索の手掛かりを探す | search_strings, search_procedures, list_names |
| 3 | 手掛かりと実行コードを接続 | find_xrefs_to_name, xrefs, procedure_callers |
| 4 | 制御フローを復元 | get_call_graph, procedure_callees, procedure_info |
| 5 | 関連する処理を逆コンパイル | procedure_pseudo_code, procedure_assembly, batch_decompile |
| 6 | プロジェクトに機能を実装する | 技術スタック、プロダクト、要件に合わせたコード |
REA は手順 1〜5 のバイナリ解析を処理し、手順 6 はエージェントの通常の編集・テストツールが行います。