資料一覧へ
REA

アプリとバイナリをエージェントで解析

Reverse Engineer Anything / morluto/rea

1 — 概要と構成

REA は、配布されたアプリやバイナリの内部を調べるための CLI と MCP サーバーです。エージェントが文字列、関数、呼び出し関係、実行時の観測を手がかりに機能を説明し、その知見を自分のプロジェクトの実装に使えます。

解析はローカルで行います。ネイティブコードは Hopper・Ghidra・IDA と連携し、JavaScript や Electron の静的解析はそれらを使わずに実行できます。

ターミナル / エージェントREA CLI / MCP対象に応じた解析機能Evidence と解析結果

npm パッケージ: rea-agents · コマンド: rea · MIT ライセンス

2 — 対象に応じて解析経路を選ぶ

対象調べる内容経路・前提
ネイティブ実行ファイル・ライブラリ関数、文字列、参照、逆アセンブル、擬似コードHopper / Ghidra / IDA。対応 OS・形式はプロバイダーごとに異なる
JavaScript / Electron のディレクトリ・ASARモジュールやアプリの構造、依存関係Node.js と npm。静的解析ではアプリを実行しない
.NET アセンブリメタデータ、型、メソッド、ILマネージドコード解析。NativeAOT はネイティブ解析へ
ブラウザ / Electron の実行中アプリ画面、ネットワーク、実行時の観測接続可能なデバッグ対象。静的解析とは別の経路
ZIP / APK / IPA / MSIX / DMGパッケージ内のメンバーと構造アーカイブ検査。APK のコード解析には別途 JADX JAR と JDK が必要
ファームウェア領域の検査、明示的な抽出Linux 上の Binwalk / Unblob を利用者が用意
ネイティブ解析エンジンが複数ある場合: --provider ghidra などで選択します。MCP では open_binary に provider_id を指定します。選択したエンジンの失敗時に別のエンジンへ自動で切り替わることはありません。

3 — 手がかりから機能を理解する

たとえば「このアプリのオフライン検索はどう動くか」を調べる場合、関係する箇所に絞って解析します。

01 / Decompile

手がかりを見つける

対象を開き、検索や保存に関する文字列・関数名を探します。参照をたどり、関連する処理の擬似コードを取得します。

02 / Understand

処理のつながりを説明

呼び出し元・呼び出し先と制御フローを確認します。観測できた内容を根拠にし、未解決の点も示します。

03 / Recreate

自分の実装へ適用

エージェントが調査結果を使い、利用者の技術構成と要件に合わせてコードを書き、テストします。

REA が担うのは解析です。 新しい機能のコード編集とテストはエージェントの通常の開発ツールが担当します。擬似コードは元のソースコードの復元を保証しません。

4 — 証拠・推測・未解決を区別する

解析結果には Evidence と、解析範囲の制約や不明点が付属します。見つかった文字列だけで機能全体を断定せず、結論を支える参照と観測範囲を確認します。

区分読み方
観測解析ツールが取得した関数、文字列、参照、実行時データ
推測観測をつないだ説明。根拠となる Evidence を明示する
未解決解析できない経路や不足した観測。未確認の挙動を成功扱いにしない

Evidence は CLI でインポート・エクスポート・比較できます。保存した解析スナップショットは、対象のバイト列・操作・パラメーター・ツール・設定が一致する場合に結果を再利用します。

ローカル解析とモデルへの送信は別です。 REA にホスト型の解析サービスはありませんが、エージェントやモデル提供元のデータポリシーは別途適用されます。

5 — 始め方

静的 JavaScript 解析を CLI で試す

Node.js 22.19 以上の 22 系、24.11 以上の 24 系、または 26 以上と npm が必要です。以下の ./app.asar は解析したいローカルファイルのパスに置き換えてください。

npx -y rea-agents@latest analyze-javascript-application ./app.asar --json

MCP 設定やネイティブ解析エンジンのインストールは不要です。結果には Evidence、復元されたグラフ、制約、不明点が含まれます。

エージェントへ接続する

npx rea-agents setup
  1. 利用するエージェントを選び、設定パスと変更内容を確認します。
  2. 必要なら既存の解析エンジンを設定します。Hopper のインストールは別の任意選択です。
  3. セットアップ後にエージェントを再起動し、対象アプリと調べたい機能を伝えます。

Codex、Claude Code、Cursor、Gemini CLI などに対応します。setup は通常、パッケージと版が一致する調査スキルも導入します。

診断は必要な範囲で行う

# Codex の MCP 登録を診断
npx -y rea-agents@latest doctor --client codex --json

# Ghidra の前提条件を診断
npx -y rea-agents@latest doctor --provider ghidra --json

無指定の doctor は全体監査です。使わないエンジンが未設定でも異常を報告し得るため、現在の作業に必要な範囲を指定します。