Files
rea/README_ja.md

22 KiB
Raw Permalink Blame History

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · 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 の仕組み · 分析できる対象 · 事例 · よくある質問 · ドキュメント

npx rea-agents setup


REA が Hopper 内で分析ブリッジを起動し、ネイティブバイナリを調べる様子



Discord
リバースエンジニアリングのコミュニティに参加

Discord · 質問と回答 · 成果の共有


アプリに、自分の製品にも取り入れたい機能を見つけましたか?エージェントに REA で調査を依頼してください。ソースコードがなくてもアプリを調べ、機能の仕組みを説明し、根拠を示したうえで、あなたのプロジェクト向けに実装できます。

REA はエージェントを分析ツールにつなぎ、ネイティブバイナリ、JavaScript や Electron のアプリ、.NET アセンブリ、ウェブサイトを調べられるようにします。同じツールをターミナルからも使えます。分析はローカルで実行され、結果には各結論を裏付ける根拠と制限事項が含まれます。

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

**REA のウェブサイト**で、セットアップ手順、図解ガイド、実際の事例を確認できます。

クイックスタート

エージェントを設定する

Node.js と npm がインストールされている環境で実行します。

npx rea-agents setup

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

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

エージェントに依頼する

Notes アプリの検索機能の仕組みを調べ、根拠を示して、私のプロジェクトにも同様の機能を実装してください。

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 でインストールした CLI の場合:

rea update

エージェントの登録とスキルを更新するには、更新処理が表示するセットアップコマンドを実行してください。

npx を使っている場合は、次のコマンドでエージェントの設定を更新します。

npx rea-agents@latest setup

設定の変更を確認し、エージェントを再起動してください。単発の CLI 操作では、npx 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;バイナリ診断
EVM バイトコード ディスパッチセレクター、バイトオフセット、推定された引数と状態変更の可否 Linux x64 上のローカルの生バイト/16 進数の入力ファイル;オフライン EVM ガイド
記録済みの Linux クラッシュ 生の note レコード、記録された全スレッドのレジスター/シグナル、任意のマッピング候補 Linux x64 で利用者が用意する pwntools;GDB/pwndbg は任意;記録済みクラッシュ
JavaScript / Electron モジュール、インポート、ソースマップ、ルート、IPC、ネイティブアドオンの関係 Node.js と npm;アプリケーション分析
ウェブサイト ページ構造、スクリプト、ネットワークの観測結果、依頼されたスクリーンショット Chrome 系ブラウザー;ブラウザー分析
保存済みのネットワークキャプチャ リクエスト、レスポンス、取得可能なペイロード、ソース内の位置 HAR;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 ランチャー;リソースガイド
ファームウェア 領域、抽出結果、ネイティブ分析への引き継ぎ Linux 上の Binwalk / Unblob;ファームウェアガイド
パッケージとリソース ファイル一覧、ダイジェスト、plist、Apple バンドルの構造、抽出されたリソース アーティファクトと JavaScript のガイド、Apple アプリケーション
プロセスの動作 ターミナル出力、対話、終了とファイルシステムの観測結果、実行の比較 ネイティブ PTY を備えた Linux/macOS;プロセスキャプチャ

静的な JavaScript と .NET の検査は、指定されたファイルを読み取り、アプリケーションを実行しません。実行時キャプチャは、あなたのユーザー権限で対象を実行したり、対象とやり取りしたりします。それぞれの実行時ガイドに、どのような操作が行われるかを記載しています。

対応するネイティブ形式とホストは、プロバイダーによって異なります。Hopper と Ghidra のセットアップ、IDA ガイド、Windows 向け Ghidra の実験的対応を参照してください。Ghidra は 16 ビット DOS 分析にも対応しています。プロバイダーの選択は CLI ガイドを参照してください。最新の npm リリース以降に追加された機能については、リリースでの利用可否を確認してください。

事例

DX-Ball の音声パン、Notion のクリップボードブリッジ、TH04 の弾幕リングの事例を表すイラスト

DX-Ball:音声のパン計算を再構築する

音声の呼び出しから位置をパンに変換する補助関数をたどり、命令を調べ、不完全な疑似コードを C に書き直します。再構築した実装は、元の x86 に対する 3,205 ケースの検証を通過し、コンパイル後の関数の全 63 バイトを再現しています。

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

Notion:Electron のクリップボードブリッジを追跡する

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

事例を読む

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

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

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

REA で興味深い対象を調べたら、ぜひ共有してください。issue または pull request に、対象、調べたかったこと、REA がどう役立ったか、何が分かったかを記載してください。

よくある質問

どのエージェントで REA を使えますか?

ローカル MCP サーバーに対応するエージェントなら使えます。セットアップは対応エージェントを設定します。その他のクライアントでは、MCP の手動登録を利用できます。

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

深いネイティブ分析には、そのいずれかを使います。静的な JavaScript と .NET の検査には、ネイティブ分析エンジンは必要ありません。セットアップは承認後に Hopper をインストールできます。Ghidra と IDA は既存のインストールを使います。プロバイダーのセットアップを参照してください。

先に Hopper を起動する必要はありますか?

REA は必要な操作の際に Hopper を起動します。macOS では、初回起動時にデモモードを選ぶか、ライセンスを有効化するよう求められることがあります。Hopper の起動とトラブルシューティングを参照してください。

skills.sh からスキルをインストールすると何ができますか?

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

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

ネイティブ分析は疑似コードとアセンブリを返します。JavaScript/Electron 分析はモジュールとその関係を復元します。エージェントはその結果を使って実装を書き、テストします。事例に具体的な手順があります。

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

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

バグに遭遇したらどうすればよいですか?

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

npm でインストールした CLI の場合:

rea update

npx でエージェントを設定している場合:

npx rea-agents@latest setup

エージェントを使っている場合は、設定の更新を完了し、再起動してください。同じタスクをもう一度試し、問題が続く場合は issue を作成して、REA のバージョン、対象の種類、再現手順、エラー出力を記載してください。

ドキュメント

まずはウェブサイトの実践ガイドを参照してください。正確なオプション、前提条件、結果の契約については、以下を参照してください。

脆弱性の報告は SECURITY.md に従ってください。

スター履歴

🎉 GitHub スター 90,000 件、ありがとうございます!

REA の利用、バグ報告、機能の要望、ビルドのテスト、修正への貢献に感謝します。

REA の GitHub スター履歴

免責事項

REA は、合法的なリバースエンジニアリングの研究、分析、再構築のためのツールを提供します。必要な許可を得て、適用される法律に従う責任は利用者にあります。このプロジェクトは違法または無許可の利用を支持しません。

貢献する

REA への貢献を歓迎します!issue を作成してバグや機能の提案を報告したり、pull request を送信してコードやドキュメントを改善したりできます。

開発環境とチェックは CONTRIBUTING.md、検証レーンはテストガイド、プロジェクト構造はアーキテクチャ図を参照してください。

ライセンス

MIT