REA:AIエージェントにソースコードのないソフトウェアを解析させる

オープンソースプロジェクトのREA(Reverse Engineer Anything)は、リバースエンジニアリングツールをClaude Code、Codex、CursorなどのAIコーディングエージェントに接続します。他社のアプリに便利な機能を見つけたら、エージェントにそのプログラムを解析させ、機能の実装方法を証拠付きで説明させたうえで、自分のプロジェクトに似たものを書かせることができます。リバースエンジニアリングとは、ソースコードがない状態で、コンパイル済みのプログラムから、その書き方を逆算することです。

REA自体はMCPサーバーです。MCPは、AIエージェントが外部ツールを呼び出すための汎用インターフェースです。接続すると、エージェントは会話中にREAの解析機能を直接呼び出せます。インストールはコマンドを1行実行するだけです。npx rea-agents setupを実行すると、Claude Code、Codex、Cursor、Gemini CLI、Grok Buildなどのエージェントに登録されます。設定を変更する前にバックアップを作成し、確認を求めます。エージェントを使わない場合は、ターミナルからコマンドを直接実行することもできます。

解析できる対象は多岐にわたります。ネイティブプログラム(機械語に直接コンパイルされたソフトウェア)の解析には、Hopper、Ghidra、IDAなどの逆アセンブラを使い、機械語をアセンブリやC言語に近い擬似コードに戻します。Electronアプリ(Notionのようなウェブ技術で作られたデスクトップソフトウェア)は、インストールパッケージ内のASARアーカイブを直接展開し、モジュールやプロセス間通信を整理できます。追加ツールは不要です。このほか、.NETプログラム、Android APK、ファームウェア、ウェブサイト、パケットキャプチャ、イーサリアムのコントラクトバイトコードにも対応し、LinuxやmacOS上でプログラム実行時の動作を記録することもできます。

解析はローカル環境で行われ、REAが対象プログラムをアップロードすることはありません。ただし、解析結果はエージェントの背後にあるモデル提供事業者に渡されます。データの取り扱いは各社のポリシーによります。

プロジェクトでは3つの事例が紹介されています。1つ目は、定番のブロック崩しゲーム「DX-Ball」です。効果音を再生する呼び出しから、ボールの位置に応じて左右の音量を計算する関数を突き止め、不完全な擬似コードをCコードに復元しました。3,205組のテスト結果はオリジナルと一致し、コンパイル後の63バイトもオリジナルと完全に同じでした。2つ目はNotionデスクトップ版です。コピー&ペーストが、画面からプリロードスクリプト、プロセス間通信を経てメインプロセスに至るまでの全経路を追跡しました。3つ目は、日本の旧型コンピューターPC-98向けゲーム『東方幻想郷』(TH04)です。16ビット命令から、弾幕の弾の輪を描く角度のアルゴリズムを復元しました。

セキュリティ研究者や、レトロゲームの再現、ソフトウェアの保存に取り組む人にとって、これまでは逆アセンブラを見ながら一行ずつ読み、呼び出しを一段ずつ追う必要がありました。今ではエージェントに先に追跡させ、人間が提示された証拠を確認できます。競合製品の機能がどう実装されているかを調べたい一般の開発者にとっても、新たな選択肢となります。

READMEによると、このプロジェクトはGitHubで5万スターを獲得しています。npmパッケージは今年7月に初めて公開され、最新の6.3.0版は今日リリースされたばかりです。

利用前に、2点に注意してください。プロジェクトは、合法的なリバースエンジニアリング研究のみをサポートすると明記しています。許可の取得や法令遵守は利用者自身の責任であり、他者のソフトウェアをリバースエンジニアリングすると、利用規約や著作権法に違反する可能性があります。また、プロジェクトは暗号資産を発行したことも、推奨したこともないと説明しています。REAの名前を借りたトークンは、プロジェクトとは無関係です。

https://github.com/morluto/rea