ソースコードが手元にないアプリケーションの仕組みを調べたいとき、役立つかもしれないツールが REA(Reverse Engineer Anything) です。
今回は公式GitHubの情報をもとに、REAがどんなツールなのかを簡単に紹介します。
この記事について
2026年10月時点の公開ドキュメントを参照してまとめています。筆者自身がREAをインストールして解析を試した記事ではありません。実際の解析精度や使い勝手は未検証です。
REAとは?
REAは、AIコーディングエージェントからリバースエンジニアリング用の解析機能を利用できるようにする、オープンソースのツールです。
CLI(コマンドライン)とMCPサーバーを提供しており、エージェントと連携してアプリケーションの構造や処理を調査できます。
公式資料では、ソースコードのないアプリケーションを解析し、特定機能の仕組みを調べる用途が紹介されています。
- 公式サイト:https://rea.tools/
- GitHub:https://github.com/morluto/rea
どんなものを解析できる?
公式ドキュメントでは、次のような対象が挙げられています。
- ネイティブの実行ファイルやライブラリ
- JavaScript / Electronアプリケーション
- .NETアセンブリ
- Webサイト
解析対象によって利用する機能や必要な環境は異なります。例えばネイティブバイナリの詳細解析には、Ghidraなどの解析エンジンを利用します。
公式サイトで紹介されている解析例
REAの公式サイトには、実際の解析内容を紹介する例があります。ここでは2つだけ紹介します。
例1:Windows電卓の「%」ボタン
Windows電卓で 200 + 10% と入力すると、結果は 220 になります。
公式サイトでは、電卓のプログラムに含まれる命令や関数の呼び出しを調べ、足し算の後の「10%」は、最初の数値200の10%(20)として扱われることを説明しています。一方、掛け算では 10% を 0.1 として扱う例も示されています。
これは、表示される計算結果だけでなく、内部の処理を手がかりに動作の仕組みを調べる例です。
例2:恐竜ゲームの速度変化
公式サイトでは、Chromium由来の恐竜ゲームのブラウザ版を対象に、走り続けるとゲームの速度が上がる仕組みを調べる例も紹介されています。
取得したJavaScriptのコードから、速度が初期値 6 から上限 13 に向かって増加する処理を確認し、そのルールを使った操作可能な小さなゲームも掲載しています。
なお、これは公式が指定するブラウザ版を解析した事例であり、あらゆるChromeのバージョンで同じ実装だと確認したものではありません。
これらはREA公式が公開している事例の紹介であり、筆者が同じ解析を実施して再現性を確かめたものではありません。
どうやって使う?
Node.jsとnpmが使える環境で、公式ドキュメントは次のセットアップコマンドを案内しています。
npx rea-agents setup
セットアップ時に連携先のAIエージェントを選択し、設定変更を確認して進めます。利用する解析対象によっては、別途解析エンジンの準備が必要です。
例えば、AIエージェントに「このアプリのファイル保存処理がどうなっているか調べて」といった質問をする使い方が考えられます。ただし、対象の形式や解析環境によって、どこまで調べられるかは変わります。
気をつけたいこと
REAは、元のソースコードを完全に復元できるツールというわけではありません。
また、AIが説明した内容が必ず正しいとも限りません。解析結果を利用する場合は、根拠となる情報を確認し、必要に応じて実際の動作と照合することが大切です。
他者のソフトウェアを解析する場合は、利用規約やライセンス、解析権限にも注意が必要です。
まとめ
REAは、リバースエンジニアリングの解析機能をAIエージェントから利用できるようにするツールです。
ソースコードのないアプリケーションを理解するための選択肢として興味深い一方、解析できる範囲や結果の正確さは、実際に試して確認する必要があります。
機会があれば、簡単なサンプルアプリで試してみたいと思います。