
REAリバースエンジニアリングMCP用のデスクトップGUI:リスティング、デコンパイラ、関数グラフを備えたコードブラウザに加え、229の解析ツールとAIエージェントを同一セッションで利用可能。
アプリを開く。骨の髄まで読み解く。
クイックスタート · Marrowの仕組み · 開けるもの · ショーケース · スクリーンショット · FAQ · 開発
[!NOTE] Marrow(旧REA Studio)は独立したプロジェクトです。REAの作者はMarrowを制作しておらず、推奨もしていません。 Marrowはインストール済みのREAを実行するもので、独自のコピーは同梱していません。REAは morluto/rea または rea-agents npmパッケージから入手してください。
MarrowはmacOS、Windows、Linux向けのリバースエンジニアリングアプリで、 REA上に構築されています。解析はREAがMCPサーバーを通じて行います。Marrowは リバースエンジニアが期待するウィンドウを提供します。逆アセンブリ付きのListing、Decompiler、 Function Graph、Symbol Tree、Bytes、文字列、参照、ブックマーク、検索を、多くの人がすでに知っている クラシックなCodeBrowserのようにレイアウトしています。
ネイティブバイナリはこのCodeBrowserで開きます。Appleバンドル、Electronアプリ、Webページ、Android APK、 .NETアセンブリ、ファームウェア、パケットキャプチャ、バージョン比較にはそれぞれ専用のウィンドウがあり、 REA ToolsウィンドウにはすべてのREAツールがそれぞれのフォームとともに一覧表示されます。
画面上のすべてはREAの応答と、REAが報告した証拠および制限事項から得られます。Marrowは ファイル自体を解析せず、ツールが失敗した場合はREAが返したエラーを表示します。解析は お使いのコンピュータ上で実行されます。
Claudeを同じセッションに2つの方法で参加させられます。自分のAnthropic APIキーをAI Chatに貼り付けてMarrow内でClaudeと会話するか、AIハブを有効にしてClaude Code、Claude Desktop、その他のMCPクライアントを接続します。どちらの場合も、ClaudeはREAのツールを実行し、ビューを移動し、 関数の名前を変更し、コメントやブックマークを追加する様子をあなたが見守ることができ、Marrowは解析の外部に 何かが到達する前に確認を求めます。
お使いのシステム用のインストーラを最新リリースから入手してください:
Mac用のDMG(Apple SiliconまたはIntel)、Windows用の.exeインストーラ、Linux用のAppImageまたは
.debです。まだ署名されていないため、初回起動時にシステムから警告が表示されます。
回避方法はリリースノートに記載されています。
npm install --global rea-agents。Node.js 22.23.4+、24.22.1+、26.12.1+のいずれかが必要です。rea doctor --provider ghidraでREAが
それらを使用できるか確認できます。MarrowはGhidraを一般的な場所(Macでは~/Applications、
WindowsではホームフォルダまたはC:\、Linuxではホームフォルダまたは/opt)で探し、JDK 21を
Homebrew、Program Files、/usr/lib/jvmで探します。Tool Options > REA Engineで別の場所を
指定できます。起動時に、Getting Started が REA、Ghidra、Java をチェックし、不足しているものの入手方法を案内します。Help > Contents でいつでも再度開くことができます。
git clone https://github.com/utabk/marrow.git
cd marrow
npm install
npm run dev
/bin/ls、Windows では
C:\Windows\System32\notepad.exe です。ユニバーサル macOS バイナリの場合、Marrow はどの
アーキテクチャを解析するかを尋ねます。entry などの名前へ移動できます。Listing や
Decompiler 内の名前をダブルクリックするとその場所へ移動し、⌥←(Windows と Linux では Alt+←)を押すと戻ります。Marrow 内でチャットするには、Window > AI Chat を開き、API Key をクリックして、
Anthropic Console のキーを貼り付けます。Marrow を起動する前に
ANTHROPIC_API_KEY を設定することもできます。キーはシステムのキーストア(macOS の Keychain、
Windows の DPAPI、Linux の GNOME Keyring または KWallet)で暗号化して保存され、Marrow のメインプロセスだけが読み取ります。
チャット上部のメニューから Claude Opus、Sonnet、Haiku を選択できます。
すでにお持ちのエージェントを使うには、Window > AI Hub を開いてサーバーを有効にします。ウィンドウには
Claude Code で実行するコマンド(claude mcp add marrow -- …)と、Claude Desktop の設定に貼り付ける
ブロックが表示されます。ハブはローカルソケット(Windows では名前付きパイプ)で待ち受け、MCP メッセージの前に
Marrow とコネクタの双方が、Marrow プロファイルに保存された秘密情報を知っていることを証明するため、
他のプログラムがどちらかのふりをすることはできません。Marrow 側に API キーは不要です。
開いたプログラムごとに専用の rea mcp プロセスが起動します。REA は接続ごとに 1 つのターゲットを
開いたままにするためです。Marrow のメインプロセスは stdio 上の MCP を介してこれらのプロセスと通信します。ウィンドウは
小さな型付きブリッジを通じてメインプロセスからデータを受け取り、ファイルやプロセスに直接触れることは
ありません。REA はネイティブコードに対して Ghidra をヘッドレスで実行し、必要に応じて他のツール
(Mac では otool と codesign、adb、JADX、ブラウザ)を呼び出し、各結果をその根拠とともに返します。
AI Chat と AI ハブは、同じメインプロセスを通じて、同じチェックのもとで REA に到達します。
flowchart LR
subgraph marrow["Marrow"]
windows["Windows<br/>Listing, Decompiler, Function Graph,<br/>Security, REA Tools, AI Chat"]
main["Main process<br/>one REA session per open program"]
hub["AI hub"]
windows <-->|"typed bridge"| main
hub <--> main
end
you(["You"]) --> windows
agent(["Your AI agent<br/>Claude Code, Claude Desktop<br/>or any MCP client"]) -->|"MCP over a local socket"| hub
main <-->|"Anthropic API, with your key"| claude(["Claude"])
main <-->|"MCP over stdio"| rea["rea mcp<br/>229 tools"]
rea --> ghidra["Ghidra, headless<br/>native analysis"]
rea --> more["Other programs REA drives<br/>otool, codesign, adb, JADX,<br/>WABT, Chrome"]
| 開くもの | Marrow での表示場所 | 必要なもの |
|---|---|---|
| ネイティブバイナリ (Mach-O、ELF、PE) | CodeBrowser: Listing、Decompiler、Function Graph、コールツリー、Symbol Tree、Bytes、文字列、参照、ブックマーク、および Mach-O 用の Security ウィンドウ | Ghidra 12.1.4 と JDK 21 |
| Apple アプリとバンドル | Apple Bundle Inspector: コード署名、Objective-C と Swift のメタデータ、Info.plist、nib、アセットカタログ、クラッシュレポート | Xcode またはそのコマンドラインツールが入った Mac |
| JavaScript と Electron アプリ | JS/Electron Inspector: ASAR またはフォルダからのアプリグラフ、Electron の fuse、実行中の Node と Electron のターゲット | 追加のものは不要 |
| Web サイト | Web Capture: Chrome のリモートデバッグポート経由のライブページ、REA のブラウザシナリオ、HAR ファイル | Chrome 系ブラウザ |
| アーカイブ、インストーラ、PE と ELF の詳細、SQLite | Artifact Inspector | 追加のものは不要 |
| Android APK とデバイス | Android | ツールに応じて JADX、Apktool、または adb |
| .NET アセンブリ | .NET Assembly Browser | 追加のものは不要 |
| WebAssembly | WASM Inspector | WABT 1.0.42 |
| ファームウェア、ロジックアナライザの記録、EVM バイトコード | Firmware & Signals | Binwalk または Unblob と sigrok (REA は Linux でのみ実行) |
| ネットワークキャプチャ | Packet Capture | TShark (REA は Linux でのみ実行) |
| 同じものの 2 つのバージョン | Version Compare | 追加のものは不要 |
| 実行中のプロセス | Debug Sessions: LLDB、Rizin、Frida、Cutter、および Linux 上の GDB | 選んだデバッガ。Marrow は実行ごとに確認します。 |
| REA ができるその他のこと | REA Tools: 全 229 ツール。それぞれ入力スキーマから生成されたフォーム付き | ツールに依存 |
Tool Options > REA Engine には、Marrow が実行する REA と、各外部プログラムをどこで見つけたか
(PATH 上、またはお使いのシステムの通常の場所) が表示されます。ファイルダイアログで別のものを選び、
Restart REA を押してください。Marrow はこれらのパスを REA_* 設定として REA に渡します:
| プログラム | 用途 | macOS でのインストール |
|---|---|---|
| adb | Android デバイス | brew install --cask android-platform-tools |
| Apktool | Android リソース | brew install apktool |
| jadx-headless-mcp 0.7.1 JAR | Android クラス | REA の docs/android-analysis.md を参照 (チェックサム固定のダウンロード) |
| WABT 1.0.42 | WebAssembly | brew install wabt |
| GNU objdump | objdump ビュー | brew install binutils |
| Rizin | Rizin コマンド | brew install rizin |
Windows と Linux では、通常のパッケージマネージャまたは各プロジェクトのサイトからインストールして ください。Marrow は PATH 上でそれらを見つけます。
REA チェックアウトの CLI スクリプト (scripts/rea.mjs) を実行する REA として選ぶこともできます。
その REA が開いているプログラムに対してより新しいツール (任意のアドレスでのコメントやブックマーク、
色付きのデコンパイラトークンなど) を提供している場合、Marrow はそれらを使用します。