REAとは?AIでリバースエンジニアリングするMCPツールの使い方

REAとは?AIエージェントにアプリを解析させるMCPツール

REAとは、AIエージェントにリバースエンジニアリングをさせるためのMCPサーバーです。リバースエンジニアリングとは、完成したソフトウェアを調べてどう動作しているかを明らかにすることです。MCP(Model Context Protocol)は、AIエージェントが外部のツールを共通の手順で呼び出すための規格を指します。

REAはGitHubのmorluto/reaで公開されていて、コードのライセンスはMITです。 対応するエージェントは、Claude Code・Codex・Cursor・Gemini CLI・Grok Buildなどです。READMEは、ローカルのMCPサーバーに対応するエージェントなら使うことができるとしています。

REAを使った解析の流れ

順番 担当 すること
1 ユーザー 解析したいアプリと機能をプロンプトに書く
2 AIエージェント(Claude Codeなど) MCP経由でREAを呼び出す
3 REA Ghidra・IDA・Hopperや内蔵の静的解析で対象を調べる
4 REA 解析した結果を、根拠と分からないことを添えてエージェントへ届ける
5 AIエージェント 仕組みを回答する。指示すれば似た機能を実装してテストする

REAの利用でソースコードの無いアプリの仕組みが分かる

REAを登録したAIエージェントは、ソースコードが公開されていないアプリでも、機能がどう動作しているかを回答します。 エージェントがMCP経由でREAを呼び出すと、REAが解析する対象のアプリについて、関係するコードを追跡する仕組みです。REAは解析した結果を、その根拠と一緒にエージェントへ届けます。

根拠として出てくるのは、疑似コード(機械語を人が理解しやすい書き方に近づけたコード)や関数の呼び出し関係などです。結果には結論ごとに分からなかったことも添えられるので、ユーザーは説明のどこまでが裏づけのある内容かを判断できます。解析した機能をもとに、ご自身のプロジェクト用の似た機能を作るところまでエージェントに任せることもできます。

Your agent calls REA through MCP to inspect the target and trace relevant code./REA returns findings with their evidence./Analysis runs locally, and results include the evidence and limitations behind each conclusion. — How REA works の項と冒頭の説明より
公式情報を見る →

解析そのものはGhidra・IDA・Hopperで実行

REAは、解析エンジンを自前で持つツールではありません。 exeなどのネイティブバイナリを深く解析するときは、ユーザーのPCにインストールされたGhidra・IDA・Hopperを呼び出します。

JavaScriptや.NETのアプリは、REAに含まれる静的解析(アプリを実行せずにファイルを調べる方法)で調べることができます。REAの役割は、Ghidraなどの解析ツールをまとめてAIエージェントから1つのMCPサーバーとして呼び出せるようにすることです。

REA connects your agent to tools for inspecting native binaries, JavaScript and Electron apps, .NET assemblies, and websites. — 冒頭の説明より
公式情報を見る →

リリースから半年でGitHubのスターは約25万

REAのGitHubリポジトリは2026年4月14日に作られ、10月15日時点でスターは25万1,958です。 フォークは6万3,287件あります。npmのパッケージrea-agentsは2026年7月12日に最初のバージョンが公開され、10月15日時点の最新バージョンは6.5.0です。

GitHubのmorluto/reaリポジトリのページ上部。リポジトリ名とファイルの一覧、右側にスター数とフォーク数が表示されている
REAのGitHubリポジトリです。10月15日時点で、スターは約25万に達しています。morluto/rea — GitHub

REAで解析できるもの

REAで解析できる対象は、exeなどのネイティブバイナリからAndroidアプリやWebサイトまで、23種類あります。READMEの表には対象ごとに分かることと必要なものが記載されており、主な対象は次のとおりです。

REAで解析できる主な対象と必要なもの

対象 分かること 必要なもの
ネイティブバイナリ 疑似コード・アセンブリ・文字列・呼び出し関係 Ghidra・IDA・Hopperのどれか
JavaScript・Electron モジュール・import・IPC Node.jsとnpm
.NETのアプリ メタデータ・CIL命令 不要(静的解析のみ)
Androidアプリ(APK) マニフェスト・クラス・逆コンパイルしたメソッド JADXとJDK
Webサイト ページの構造・スクリプト・通信 Chrome系のブラウザ
保存した通信記録 リクエスト・レスポンスの中身 HARかFiddlerのSAZ

SQLiteのデータベースやファームウェアの解析、実行中プロセスの観測にも対応しています。 対象によってはLinuxやmacOSでしか動作しないものもあるため、READMEの対象一覧で対応するOSをチェックしてから使います。

REAのREADMEにある、解析できる対象と必要なものの英語の表。Native binariesやJavaScript / Electronなどの行がある
REAのREADMEにある対象の一覧です。左から対象、分かること、必要なものの順に掲載されています。morluto/rea — GitHub(README)

exeなどのネイティブバイナリ

バイナリとは、プログラムを機械語に変換したファイルで、代表的なものにWindowsのexeがあります。 人がそのまま読むのは難しいため、REAはGhidra・IDA・Hopperのどれかを呼び出して、疑似コード・アセンブリ・文字列・関数の呼び出しと参照を取り出します。

Go言語で作られたバイナリなら、Goをインストールしなくても埋め込まれたコンパイラのバージョンやモジュールを調べることができます。Rustのバイナリも、埋め込まれたクレート(Rustのライブラリ)の名前やバージョン、依存関係を取り出せます。

Pseudocode, assembly, strings, symbols, calls and references/no Go installation required — 対象の表の Native binaries と Go binaries の行より
公式情報を見る →

JavaScript・Electron・.NETのアプリ

JavaScriptで作られたアプリと、Web技術で作るデスクトップアプリのElectronは、解析エンジンなしで調べることができます。また、REAはモジュールの構成やimport、画面側と本体のあいだのやり取り(IPC)を解析します。 Linuxで使う場合は、procps互換のpsコマンドも必要です。

.NETで作られたアプリも、追加のツールなしでメタデータやCIL命令(.NETが使う中間言語)を解析することができます。JavaScriptと.NETの静的な解析は、どちらもアプリを実行せずにファイルを調べる方法です。

Modules, imports, source maps, routes, IPC and native add-on relationships/None (static only) — 対象の表の JavaScript / Electron と .NET assemblies の行より
公式情報を見る →

Androidアプリ・Webサイト・保存した通信記録

AndroidアプリはAPKファイルを解析し、マニフェスト・クラス・逆コンパイルしたメソッドを取り出します。 APKの解析にはJADXとJDKが必要です。Androidスマートフォンそのものも、adbという接続ツール経由で解析できます。

Webサイトは、Chrome系のブラウザでページの構造・スクリプト・通信を観測し、プロンプトで求めればスクリーンショットも撮ります。ブラウザの開発者ツールで保存したHARファイルや、FiddlerのSAZファイルのような通信記録も、リクエストとレスポンスを調べる対象になります。

Manifest declarations, classes, decompiled methods and references/Page structure, scripts, network observations and requested screenshots — 対象の表の Android APKs と Websites の行より
公式情報を見る →

REAの導入方法(Claude Codeの場合)

REAは、ターミナルでnpx rea-agents setupを実行するだけで、Claude Codeに登録できます。 必要なのはNode.jsとnpmで、exeなどを調べる場合はGhidra・IDA・Hopperのどれかも用意します。

REAのREADMEにあるQuick startの項。npx rea-agents setupのコマンドと、エージェントへのプロンプトの例が英語で書かれている
READMEのQuick startの項です。setupのコマンドの下に、プロンプトの例があります。morluto/rea — GitHub(README)

Node.jsとnpmを用意

REAを動作させるには、Node.jsとnpmが必要です。Node.jsは、次のどれかのバージョンをインストールしておきます。

  • 22系なら22.19以上
  • 24系なら24.11以上
  • 26以上

ターミナルでnode -vを実行すると、インストールされているNode.jsのバージョンが表示されます。 条件より古い場合は、Node.jsの公式サイトから新しいバージョンをインストールします。

REA requires Node.js 22.x (>=22.19), 24.x (>=24.11), or 26+, plus npm. — 必要な環境の説明より
公式情報を見る →

npxの1行でエージェントに登録

ターミナルで次のコマンドを実行すると、REAの登録が始まります。 途中で使うエージェント(ここではClaude Code)を指定し、表示された変更案を見て承認します。

npx rea-agents setup

setupが登録するのは、REAのMCPサーバーとエージェント向けの作業手順(スキル)です。既存の設定ファイルは書き換える前にバックアップされるので、元に戻すこともできます。登録が終わったら、Claude Codeを再起動します。

REAを日常的に使うなら、npm install --global rea-agentsでreaコマンドをインストールしておくと便利です。不具合の修正が頻繁に出るため、READMEはこまめな更新を勧めています。更新するときはrea updateを、npxで使っている場合はnpx rea-agents@latest setupを実行します。

Setup registers REA with your agent and installs matching workflow instructions. — 冒頭の説明より
公式情報を見る →

exeの解析にはGhidra・IDA・Hopperが必要

exeなどのネイティブバイナリを調べるには、Ghidra・IDA・Hopperのどれかが必要です。GhidraとIDAは、PCにインストールされているものをREAが使います。Hopperは、setupの途中で承認すればインストールできます。

IDA ProとHopperは商用の製品で、正規のライセンスで使う必要があります。 READMEによると、WindowsでGhidraを呼び出す解析はまだ実験的な対応とのこと。

Native analysis can use an existing Hopper, Ghidra, or IDA installation; setup can optionally install Hopper with approval./experimental Windows Ghidra support — 冒頭の説明と解析ツールの選び方の項より
公式情報を見る →

REAの使い方:解析したい機能をプロンプトに書く

REAを登録したら、Claude Codeのプロンプトに解析したいアプリと機能を書くだけで、解析が始まります。 Ghidraなどの操作を覚える必要はなく、どの解析ツールを呼び出すかはエージェントが判断します。

REAの公式サイトrea.toolsにある電卓の事例。Why does Calculator give 220 for 200 + 10%?という英語の問いと、解析の3つの段階が書かれている
公式サイトの事例では、Windowsの電卓で200 + 10%が220になる理由を調べています。REA 公式サイト

アプリ名と仕組みを知りたい動作を書く

プロンプトには対象のアプリ名と、仕組みを知りたい動作を具体的に書きます。READMEには「メモアプリの検索がどう動作しているかを調べて、根拠を見せて、私のプロジェクトにも同じような機能を作って」というプロンプトの例があります。

メモアプリの部分を、ご自身が解析したいアプリと機能に置き換えてお使いいただけます。Claude Codeで使う場合は、たとえば次のように書きます。

REAを使って、メモアプリの検索がどう動いているかを調べてください。結論ごとに根拠も書いてください。

ターミナルから直接使うこともできます。 Electronのアプリならnpx -y rea-agents@latest analyze-javascript-application <アプリのフォルダ> --jsonのように、アプリのフォルダやASARファイルを指定して解析します。

Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project./Replace Notes with your target app and the feature you want to understand. — Ask your agent の項より
公式情報を見る →

AIの回答には根拠と分からない部分も含まれる

AIの回答には、REAが解析した結果にもとづく結論ごとの根拠と、分からなかったことが含まれます。 エージェントはREAの結果をもとに追加で解析したり動作を説明したりし、プロンプトで求めれば似た機能を実装してテストまで行います。

公式サイトの事例は、Windowsの電卓で「200 + 10%」が220になる理由を解析したものです。解析の手順は次の3段階で、最後は電卓のDLL(共有ライブラリ)の命令から理由を明らかにしています。

  1. 分岐を解読する
  2. 呼び出しを追跡する
  3. 計算の規則を復元する
Why does Calculator give 220 for/Decode branches/Trace calls/Recover the rule — 電卓の事例の項より
公式情報を見る →

公式の事例:ブロック崩しの計算をC言語で再現

READMEにある事例の1つは、ブロック崩しのゲームDX-Ballで効果音を左右に振り分ける計算を、C言語で再現したものです。効果音の呼び出しから、位置を左右の振り分けに変換する関数までを追って命令を解析し、不完全な疑似コードをC言語に書き直しています。

再現したコードは、元のx86の実行結果と3,205件のケースで一致し、コンパイルした関数の63バイトもすべて同じになりました。 ほかにも、NotionのElectronアプリでクリップボード機能の経路を追った事例や、PC-98のゲームで弾の角度の計算を復元した事例があります。

REAのREADMEにある事例の一覧。DX-Ball、Notion、TH04の3つの事例のイラストと説明が英語で書かれている
READMEの事例の項です。DX-Ballのほか、NotionとPC-98のゲームの事例があります。morluto/rea — GitHub(README)
The reconstruction passes 3,205 original-x86 cases and reproduces all 63 compiled function bytes. — Showcases の DX-Ball の項より
公式情報を見る →

REAとGhidraMCP・ida-pro-mcpの違い

AIエージェントに解析ツールを操作させるMCPサーバーは、REAが最初ではありません。 Ghidra用のGhidraMCPは2025年3月23日に、IDA Pro用のida-pro-mcpは2025年3月25日に、GitHubでリポジトリが作られています。

REAとGhidraMCP・ida-pro-mcpの比較

比較する内容 REA GhidraMCP ida-pro-mcp
連携する解析ツール Ghidra・IDA・Hopperと内蔵の静的解析 Ghidra IDA Pro
主な対象 バイナリ・JavaScript・.NET・Android・Webサイトなど Ghidraで開くバイナリ IDA Proで開くバイナリ
リポジトリの作成日 2026年4月14日 2025年3月23日 2025年3月25日

GhidraMCPなどは解析ツールごとに別々に導入

GhidraMCPとida-pro-mcpは、1つの解析ツールと1つのMCPサーバーを連携する構成です。 GhidraとIDA Proの両方をAIに使わせたい場合は、MCPサーバーを2つ導入して、それぞれ設定することになります。

GitHubのLaurieWired/GhidraMCPリポジトリのページ上部。MCP Server for Ghidraという説明が表示されている
Ghidra用のMCPサーバー、GhidraMCPのリポジトリです。LaurieWired/GhidraMCP — GitHub
GitHubのmrexodia/ida-pro-mcpリポジトリのページ上部。IDA Proと言語モデルをMCPで連携するという英語の説明が表示されている
IDA Pro用のMCPサーバー、ida-pro-mcpのリポジトリです。mrexodia/ida-pro-mcp — GitHub
MCP Server for Ghidra — リポジトリの説明より
公式情報を見る →
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP. — リポジトリの説明より
公式情報を見る →

REAは対象に合わせて解析ツールを使い分ける

REAは、複数の解析ツールと内蔵の静的解析を、1つのMCPサーバーにまとめています。 エージェントから見ると、対象がexeでもElectronのアプリでもAndroidアプリでも、REAを呼び出すだけで十分です。

調べる対象がネイティブバイナリだけで、使う解析ツールも1つに定まっているなら、GhidraMCPやida-pro-mcpでも十分です。JavaScriptのアプリやAndroidアプリのように種類の異なる対象も調べるなら、REAを1回登録するほうが手間がかかりません。

REAのREADMEの冒頭。One MCP for reverse engineering across binaries, applications, and runtime behavior.という英語の副題が表示されている
READMEの冒頭です。バイナリ・アプリ・実行時の動きをまたぐ1つのMCPとしています。morluto/rea — GitHub(README)
One MCP for reverse engineering across binaries, applications, and runtime behavior. — README の副題より
公式情報を見る →
I recommend using the Official Hex-Rays IDA MCP Server instead! — README 冒頭の Important の項より
公式情報を見る →

リバースエンジニアリングをAIに任せる前の注意点

REAを使う前に、調べてよいアプリかどうかを著作権法と利用規約の両方でチェックしておく必要があります。 REAの免責事項も、許可を得ることや法令・利用規約を守ることはユーザーの責任だとしています。

GitHubに置かれたREAの免責事項DISCLAIMER.mdのページ上部。英語の本文が表示されている
REAの免責事項です。ユーザーの責任と、プロジェクトが支援しない使い方が書かれています。morluto/rea — GitHub(DISCLAIMER)

著作権法と利用規約を先にチェック

文化庁は2019年10月24日の資料で、プログラムの解析を目的とするリバースエンジニアリングについて見解を出しています。 資料では、解析は機能を楽しむ利用ではないとして、著作権法第30条の4の「享受」を目的としない利用に「該当するものと考えられる」との見解です。

ただし利用規約でリバースエンジニアリングが禁止されている場合は、著作権法とは別に、規約違反になる恐れがあります。文化庁の資料によると、解析専用のパソコンで実行することや、過程と結果をレポートに記録することが、機能を楽しむ目的ではないことの裏づけになります。

REAの免責事項も、リバースエンジニアリングは国や地域、調べるソフトウェアのライセンスによって制限されることがあるとしています。ソフトウェアが公開されていることやファイルを持っていることだけでは、すべての操作が許されるわけではありません。業務で使うかどうかを判断する際は、弁護士などの専門家に相談してください。

文化庁の資料「デジタル化・ネットワーク化の進展に対応した柔軟な権利制限規定に関する基本的な考え方」の問12のページ。リバース・エンジニアリングについての問いと回答が書かれている
文化庁の資料の問12です。リバース・エンジニアリングと著作権法第30条の4の関係について、文化庁の考え方が書かれています。文化庁 — 柔軟な権利制限規定に関する基本的な考え方
法第30条の4の「著作物に表現された思想又は感情」の「享受」を目的としない利用に該当するものと考えられる。/規約との関係については注意する必要がある。 — 問12の回答より
公式情報を見る →
may be restricted in your jurisdiction or by the license of the software you analyze. — 免責事項の冒頭より
公式情報を見る →

商用の解析ツールは正規のライセンスで利用

IDA Pro・Hopper・JEBなどの商用の解析ツールは、ユーザーが正規に購入したライセンスで使います。また、REAは商用ツールのライセンスやキー、アクティベーションを提供しません。

クラック版のソフトウェアや盗まれたキーで使うことも、REAは認めていません。体験版やデモ版を使う場合も、それぞれのメーカーの利用条件に従います。

provides no commercial-tool license, key, or activation entitlement./Permitted trials and demos remain subject to vendor terms. — 商用ツールの項より
公式情報を見る →

解析結果はAIモデルの提供元へ送信される

REAの解析はお使いのPC上で行われますが、解析結果はAIエージェントを通じてAIモデルの提供元へ送信されます。送信された情報の保存期間や利用目的は、AIモデルを提供する会社ごとのデータ方針で定められています。社外秘のアプリや、個人情報を含む通信記録を調べる場合は、利用しているAIモデルのデータ方針を事前にチェックしてください。

実行時の観測や通信の記録はアプリの状態やファイル、アカウントに影響することがあるため、信頼できない対象は専用の環境で調べます。 信頼できないアプリやWebサイトを調べさせると、AIエージェント自体が乗っ取りの攻撃を受ける恐れもあります。

REA analyzes targets locally. Your agent receives the tool results, and its model provider has its own data policy. — FAQ の Does REA upload my app? の項より
公式情報を見る →

REAは公式の配布元からだけダウンロード

名前が似たリポジトリやREADMEをコピーしたページだからといって、REAの公式版とは限りません。 公式の配布元は次の3つだけです。

  • GitHubのmorluto/rea
  • 公式サイトのrea.tools
  • npmのrea-agents

REAは公開から半年でスターが約25万に達した注目のツールで、名前の似た偽物が出てもおかしくありません。導入するときは、コマンドのパッケージ名がrea-agentsになっているかをチェックします。

REAのREADMEの冒頭にあるImportantの注意書き。morluto/rea、rea.tools、rea-agentsのnpmパッケージから入手するよう英語で書かれている
READMEの冒頭にある、公式の配布元についての注意書きです。morluto/rea — GitHub(README)
A similar repository name or copied README does not establish that a download is official. — 公式の配布元の項より
公式情報を見る →

調べてよいアプリを判断してからREAを利用

REAは、リバースエンジニアリングをAIエージェントに任せるためのMCPサーバーで、npx rea-agents setupの1行でClaude Codeなどに登録できます。 exeなどの解析はGhidra・IDA・Hopperで行い、JavaScriptや.NETはREAが追加のツールなしで解析することができます。

使い方は、解析したいアプリと機能をプロンプトに書くだけです。AIの回答には、根拠と分からなかったことが含まれます。ただし調べてよいアプリかどうかは、著作権法と利用規約、商用ツールのライセンスで先に判断する必要があります。

最初はご自身で作ったアプリや調べる許可を得たアプリで試すと、REAの回答がどのように出るかを安全に体験できます。REAがエージェントとの接続に使うMCPも、仕様の更新が継続しています。

FAQ

REAは無料で使うことができますか?
REAのコードはMITライセンスで公開されていて、無料で使うことができます。ただし、exeなどの解析で呼び出すIDA ProやHopperは商用の製品です。REAはこれらのライセンスやキーを提供しないため、使う場合はユーザーが正規に購入する必要があります。
WindowsでもREAを使うことができますか?
使うことができます。公式サイトの導入手順には、WindowsのPowerShellで実行するコマンドがあります。ただし、Ghidraを呼び出す解析のWindows対応は、READMEで実験的という位置づけです。
REAで解析した機能を、ご自身の製品に使ってよいですか?
REAの免責事項のとおり、解析結果や復元したコードを手にしても、元のプログラムへの権利はユーザーに移りません。対象のライセンスと利用規約で許されているかを先にチェックし、自社製品に組み込むかどうかを判断する際は弁護士などの専門家に相談してください。