話題の REA を4つの AI につないでみた ― Ghidra で逆コンパイルするまでの導入手順と、はまったところ
GitHub で話題の REA(Reverse Engineer Anything)を、手元の Mac に入れてみました。REA は、AI エージェントに「アプリの中身を調べる道具」を持たせる MCP サーバーです。Claude Code・Codex・Antigravity・Grok の4つにつなぎ、Ghidra を使った逆コンパイルが4つとも動くところまで確かめました。
- リバースエンジニアリング:完成したソフトを分解して、仕組みを調べること
- 逆コンパイル:機械語のプログラムを、C 言語に近い形に戻すこと
- MCP:AI に外部の道具を使わせるための共通のつなぎ方。これまでの記事:Claude Code から Discord を読み書きする
REA の README には「自分の持ち物か、解析の許可を得たソフトだけに使う」と書かれています。アプリの利用規約で解析が禁じられている場合もあるので、対象ごとに確かめてから使います。今回の試験では、自分で書いた小さなプログラムだけを調べました。
REA とは
- 入手先:GitHub の
morluto/rea、rea.tools、npm のrea-agents。名前の似た偽物があると公式が注意しているので、この3つ以外からは入れません - ライセンス:MIT。作られたのは 2026年4月で、11月の時点でスターは約 44 万です
- 調べられるもの:Mac や Windows の実行ファイル、JavaScript・Electron のアプリ、.NET のプログラム、Android のアプリ、Web サイト、通信の記録など
- 解析する場所:手元のパソコン。ただし結果は AI に渡るので、AI の提供元には送られます
実行ファイルの解析には、Ghidra・Hopper・IDA などの解析ソフトが別に必要です。JavaScript や .NET は、REA だけで中身を読めます。
全体の構成

- 入れた Mac:mac1(Apple Silicon)
- REA:6.8.0
- 解析ソフト:Ghidra 12.1.4 と JDK 21。Hopper と IDA は入れていません
- つないだ AI:Claude Code、Codex、Antigravity(
agy)、Grok Build
1. Node.js の版を合わせる
REA が動く Node.js は、22.23.4 以上・24.22.1 以上・26.12.1 以上のどれかです。mac1 は nvm で入れた v24.21.0 だったので、Node 24 の最新の LTS(長期サポート版)に上げました。nvm は、複数の版の Node.js を切り替えて使う道具です。
nvm install 24.22.2 --reinstall-packages-from=24.21.0
nvm alias default lts/krypton
2行目が必要になった理由は、あとの「はまったところ」に書きます。
2. REA を AI につなぐ
公式の手順は npx rea-agents setup の1行です。対話形式でつなぐ AI を選びますが、先に --dry-run で、どの設定ファイルが書き換わるかを確かめました。
# 見つかった AI と、書き換える設定ファイルの一覧を出すだけ(変更はしない)
npx -y rea-agents@6.8.0 setup --all-detected --dry-run
# つなぐ AI を指定して実行
npx -y rea-agents@6.8.0 setup
--client claude_code --client codex
--client gemini_cli --client antigravity --client grok_build --yes
- dry-run では、mac1 にある 10 個の AI の設定が見つかりました。全部につなぐ必要はないので、普段使う5つに絞りました
- 書き換える前の設定は、同じ場所に
.rea.backupの名前で控えが作られます - Claude Code の場合は
~/.claude.jsonのmcpServers.reaに登録され、どのフォルダで起動しても使える状態になります - 登録される起動の方法は
npx -y rea-agents@6.8.0 mcpで、版が固定されます。新しい版にするときは setup をやり直します
登録できたかは rea doctor で確かめられます。読み取るだけで、何も変えません。
npx -y rea-agents@6.8.0 doctor --client claude_code --skill
3. Ghidra を入れて REA に教える
Ghidra は、アメリカの国家安全保障局(NSA)が公開している無料の解析ソフトです。最新は 12.2 ですが、REA が動作を確認しているのは 12.1.4 と JDK 21 の組み合わせなので、そちらにしました。12.2 は JDK 25 以上が必要です。
- JDK 21 を入れる:
brew install openjdk@21。Mac 全体のjavaにはつながない形で入ります - Ghidra を取ってくる:GitHub の公式のリリースから zip を取り、公開されている SHA-256(改ざんされていないかを確かめる値)と一致することを確かめて、
~/Applicationsに展開しました - 逆コンパイラを作る:配布物に Mac 用の逆コンパイラが入っていなかったので、REA の手順書どおりに作りました(次のコード)
- REA に場所を教える:
GHIDRA_INSTALL_DIRとJAVA_HOMEを指定して、setup をもう一度実行します。これで各 AI の登録に Ghidra の場所が書き込まれます
G=~/Applications/ghidra_12.1.4_PUBLIC
cd "$G/Ghidra/Features/Decompiler/src/decompile/cpp"
make ghidra_opt ARCH_TYPE="-arch arm64" OSDIR=mac_arm_64
mkdir -p "$G/Ghidra/Features/Decompiler/os/mac_arm_64"
install -m 755 ghidra_opt "$G/Ghidra/Features/Decompiler/os/mac_arm_64/decompile"
Ghidra の Makefile は Mac では Intel 用に作る設定になっていますが、ARCH_TYPE と OSDIR を上書きすると Apple Silicon 用ができます。Xcode のコマンドラインツールが入っていれば、追加で入れるものはありません。
export GHIDRA_INSTALL_DIR=~/Applications/ghidra_12.1.4_PUBLIC
export JAVA_HOME=/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home
npx -y rea-agents@6.8.0 doctor --provider ghidra
npx -y rea-agents@6.8.0 setup --client claude_code --client codex
--client gemini_cli --client antigravity --client grok_build --yes
4. 4つの AI で試す
試験用に、数に 3 を足して返すだけの小さなプログラムを作りました。
printf 'int add3(int a){return a+3;}nint main(int c,char**v){return add3(c);}n' > t.c
cc -O0 -o t t.c
まずターミナルから REA を直接呼んで、Ghidra が動くことを確かめました。7 秒ほどで結果が返りました。
npx -y rea-agents@6.8.0 decompile ./t _add3 --provider ghidra
int _add3(int param_1)
{
return param_1 + 3;
}
次に、それぞれの AI を起動し直して、同じ依頼をしました。
REA で ~/rea-test/t の関数 _add3 を逆コンパイルして

- 4つとも
return param_1 + 3;が返りました。元のコードと同じ動きです - 引数の名前
aがparam_1になるのは、実行ファイルに引数の名前が残らないためです - 関数名の先頭の
_は、Mac の実行ファイルが付けるものです - 時間は AI によって違い、Claude Code は約 1 分、Codex は約 1 分 52 秒、Grok は約 5 分でした。Grok は、REA の使い方の説明(SKILL.md)を読んでから道具を呼んでいました
Claude Code の場合、REA の MCP のログには次の順で呼び出しが残っていました。ファイルを開く、逆コンパイルする、閉じるの3つで、それぞれ 4 秒ほどでした。
Calling MCP tool: open_binary → completed successfully in 4s
Calling MCP tool: procedure_pseudo_code → completed successfully in 4s
Calling MCP tool: close_binary → completed successfully in 505ms
はまったところ
新しい Node.js を入れたら、標準の版が消えた
nvm の標準の版は lts/*(いちばん新しい LTS)になっていました。v24.22.2 を入れたときに LTS の一覧も更新され、lts/* が Node 26 を指すようになりました。Node 26 は nvm に入っていないので、標準の版が「N/A」になり、新しいターミナルで nvm の Node が使われなくなりました。
標準を Node 24 の系列(lts/krypton)に固定して直しました。Node 26 に上げるときは、改めて入れてから切り替えます。
Codex の登録が、普段の Codex に入っていなかった
setup を実行したのは、Orca の中の Claude Code です。Orca は、中で動く AI のために CODEX_HOME(Codex が設定を読むフォルダ)を自分専用のフォルダにしています。そのため REA の登録は Orca 用の Codex の設定にだけ入り、普通のターミナルの Codex(~/.codex)からは REA が見えませんでした。
# CODEX_HOME を外して、~/.codex にも登録する
env -u CODEX_HOME npx -y rea-agents@6.8.0 setup --client codex --yes
Orca が別のフォルダにしていたのは Codex だけで、Claude Code・Antigravity・Grok には関係ありませんでした。
Gemini CLI は入っていなかった
setup は ~/.gemini の設定を見つけて Gemini CLI にも登録しましたが、mac1 には gemini コマンド自体が入っていませんでした。設定は Antigravity と共用しているフォルダにあったためです。Antigravity の CLI(agy)からは、agy mcp list で REA が見えています。
AI は起動し直さないと REA を使えない
MCP の設定は、AI を起動するときに読み込まれます。setup の後は、動いている AI を一度終了して、新しいターミナルで起動し直します。Node.js を上げる前に開いたターミナルだと、古い版のまま動くことがあります。
Grok は確認なしで道具を使う設定だった
Grok は「always-approve」(道具を確認なしで使う)の設定になっていました。REA には、調べる対象を実際に動かして様子を見る機能もあります。知らないファイルを調べるときは、確認ありの設定に切り替えたほうが安心です。
Mac で Windows のアプリも調べられる?
ファイルの中身を読む解析(静的解析)なら、Mac でも Windows のアプリを調べられます。試しに、Ghidra の中に入っている Windows 用の実行ファイル decompile.exe(64 ビット版 Windows 用)を、mac1 の REA で逆コンパイルしました。
npx -y rea-agents@6.8.0 decompile
~/Applications/ghidra_12.1.4_PUBLIC/Ghidra/Features/Decompiler/os/win_x86_64/decompile.exe
entry --provider ghidra
void entry(void)
{
FUN_1401bbea4();
FUN_1401bb6e0();
return;
}
最初に動く関数(entry)の中身が、47 秒ほどで返りました。名前の残っていない関数は、Ghidra が FUN_ と番地で名前を付けます。
- Mac でできること:Windows の
.exe・.dllの逆コンパイル、.NET で作られたアプリの中身、電子署名や使っている DLL の一覧の確認。.NET については、Mac や Linux でも Windows と同じ結果になるように作られていると、公式の文書に書かれています - Mac でできないこと:Windows のアプリを動かして、画面や通信、ファイルの読み書きを観察すること。Windows の実機か仮想マシンが必要です。REA の Windows 版は、まだ試験段階です
Windows 用のアプリを Mac 用にコンパイルし直せる?
中身が読めるなら、Mac 用に作り直せるのでは、と考えたくなります。結論は、基本的にはできません。REA の本来の使い方は、仕組みを理解して、似た機能を自分で作り直すことです。
- 出てくるのは元のソースではない:逆コンパイルの結果は、元のコードに近い形の「疑似コード」です。変数名や関数名、データの型の多くは失われ、上の
FUN_1401bbea4のような仮の名前になります。そのままコンパイルが通ることは、まずありません - Windows だけの機能を使っている:画面の部品やファイルの扱いなど、Windows だけにある機能(Win32 API)を使っています。コードを戻せても、その部分は Mac の仕組みに書き換える必要があります
- ライセンスの問題:他人が作ったアプリを Mac 用に作り直して使うことは、利用規約や著作権で禁じられていることが多いです。アプリごとに確かめます
| アプリの種類 | Mac で使うには |
|---|---|
| 普通の Windows アプリ(C・C++ など) | 作り直すしかない。REA で仕組みを調べて、同じ機能を自分で書く |
| .NET のアプリ | 画面の部品が Windows 専用(WinForms・WPF)なら Mac では動かない。中の処理は Mac の .NET でも動く場合がある |
| Electron のアプリ | 中身は JavaScript なので Mac 版を作りやすい。ただし、他人のアプリを作り直すのはライセンス次第 |
Windows のアプリを Mac で使うだけなら、ほかの方法もあります。
- CrossOver や Wine:Windows のアプリを、Mac の上で変換しながら動かすソフト。動くかどうかはアプリによります
- Parallels などの仮想マシン:Mac の中で Windows を丸ごと動かします。確実ですが、Windows のライセンスが必要です
- Mac 版を探す:まず、メーカーが Mac 版を出していないかを確かめます
Hopper や IDA を入れるとどうなる?
今回は無料の Ghidra だけを使いましたが、REA は Hopper と IDA にも対応しています。入れると、解析のエンジンを --provider ghidra・hopper・ida のように選べるようになり、同じ関数を別のエンジンで逆コンパイルして見比べられます。指定しなければ、REA が決まった順で選びます。
- Hopper:Mac 向けの解析ソフト。
rea setup --install-hopperで REA が入れてくれます(公式の配布物を確かめてから~/Applicationsに置き、管理者権限は使いません)。最初の1回だけ、体験版かライセンスかを画面で選びます。解析の画面を開いて、AI と一緒に見ながら操作できるのは Hopper だけです - IDA:業界でよく使われる解析ソフト。REA は入れてくれないので、IDA 本体と、IDA を AI から操作するための MCP サーバー(
mrexodia/ida-pro-mcp)を自分で入れ、その設定の場所をREA_IDA_MCP_CONFIGで教えます
価格は次のとおりです(2026年11月に公式のページで確認。税抜きで、実際の請求額は購入画面で確かめてください)。
| ソフト | 種類 | 価格 | 条件 |
|---|---|---|---|
| Ghidra | — | 無料 | 仕事にも使える |
| Hopper | Personal | $99(買い切り) | 本人の PC なら何台でも。1年分の更新つき。仕事にも使える |
| Hopper | Computer | $129/台(買い切り) | PC 1台に付くライセンス |
| IDA | Free | 無料 | 仕事以外のみ |
| IDA | Home | $365/年 | 仕事以外のみ |
| IDA | Pro Essential | €1,099/年から | 仕事に使える |
| IDA | Pro Expert | €4,999/年から | 仕事に使える |
| IDA | Pro Ultimate | €8,599/年から | 仕事に使える |
- Hopper は買い切りで、期限はありません。2年目以降の更新は、アプリの中から割引価格で買えます。更新を買わなくても、それまでの版は使い続けられます
- IDA はすべて年額制で、買い切りはありません
- どちらも、ライセンスの条件(体験版の制限、自動での利用の可否など)は REA ではなくメーカーの決まりに従います
仕組みを調べる程度なら、無料の Ghidra で十分だと感じました。Mac で画面を見ながら使いたいなら Hopper、仕事以外でほかのエンジンの結果も見たいなら IDA Free や IDA Home、という選び方になりそうです。
まとめ
- REA は
npx rea-agents setupで、普段使う AI に MCP サーバーとしてつながる - 先に
--dry-runで、書き換わる設定ファイルを確かめると安心 - 実行ファイルの解析には Ghidra などが別に必要。Apple Silicon では逆コンパイラを自分で作る
- 4つの AI で、同じ逆コンパイルの結果が返った
- Orca の中から setup すると、Codex の登録先が変わるので注意
- Mac でも Windows のアプリの中身は読める。動かして調べるのは Windows が必要
- 逆コンパイルの結果は元のソースではないので、Mac 用にコンパイルし直すことは基本的にできない
- Hopper($99 の買い切り)や IDA(無料版あり、ほかは年額)も使えるが、まずは無料の Ghidra で十分
- 使うのは、自分の持ち物か許可を得たソフトだけにする
