新たなオープンソースツール「REA」、AIエージェントによるソースコードなしのソフトウェアリバースエンジニアリングを可能に

「REA」(Reverse Engineer Anythingの略)は、AIコーディングエージェントとソフトウェア解析エンジンを接続するオープンソースのツールです。エージェントは、元のソースコードにアクセスできなくても、アプリケーションを調査できるようになります。

このプロジェクトはMITライセンスで公開されており、バイナリ検査、アプリケーション解析、実行時の観測を、ローカルのModel Context Protocol(MCP)サーバーを通じて統合します。

REAは既存のリバースエンジニアリング基盤を置き換えるものではなく、エージェントがそれらを利用するための共通インターフェースを提供します。ネイティブ解析ではHopper、Ghidra、IDAのいずれかを利用し、疑似コード、アセンブリ命令、文字列、シンボル、呼び出し、参照を取得します。

エージェントはその結果をもとに、関連する関数を追跡し、追加の証拠を要求し、動作を説明し、検証用の実装を生成できます。REAは、解析ツールが提供した調査結果と、エージェントが生成した解釈を区別して扱います。

ドキュメントによると、結果には裏付けとなる証拠と制約事項が含まれます。そのため、利用者は生成された説明を復元されたソースコードとして扱うのではなく、結論の妥当性を自ら評価できます。

JavaScriptおよびElectronアプリケーションについては、モジュール、インポート、ソースマップ、ルート、プロセス間通信、ネイティブアドオンの関係をマッピングします。

JavaScriptの静的解析にネイティブデコンパイラは不要です。このツールは、アプリケーションを実行せずに、.NETメタデータ、共通中間言語(CIL)命令、宣言されたネイティブ依存関係、ビルド間の差分も調べます。

検査機能はさらに広範で、Android APK、ファームウェア、WebAssemblyアーティファクト、Ethereum Virtual Machine(EVM)バイトコード、記録されたLinuxクラッシュ、保存されたネットワークキャプチャーにも対応します。

必要な環境は用途によって異なります。AndroidのデコンパイルにはJADXと完全版のJDK、ファームウェアの処理にはBinwalkまたはUnblob、ブラウザー検査にはChrome系ブラウザーが必要です。

実行時のワークフローでは、選択したプロセスのやり取り、ターミナル出力、終了時の挙動、ファイルシステムの観測結果、実行間の比較を取得します。提供されたファイルを読み取るだけの静的検査とは異なり、これらの操作は操作者の権限で対象を実行、または対象とやり取りします。

公開されているデモでは、調査から検証済みの再構築までをどのように進められるかが示されています。DX-Ballのデモでは、復元したサウンド位置の計算処理が、元のx86テストケース3,205件すべてに合格しました。コンパイル済み関数の63バイトもすべて再現しています。

別の例では、NotionのクリップボードAPIの機能を、Electronのレンダラー、プリロード、IPC、メインプロセスの境界をまたいで追跡しています。利用者はnpx rea-agents setupでサポート対象のエージェントを設定できます。提案された変更内容を確認して登録を承認し、エージェントを再起動する流れです。

セットアップはClaude Code、Codex、Cursor、Gemini CLI、Grok Buildに対応しています。それ以外のクライアントでも、ローカルのMCPサーバーを手動で登録できます。セットアップ時には既存の設定がバックアップされます。

セキュリティ研究者にとっての中心的な価値は、複数のソフトウェア層にわたる検証可能な成果物と自動調査を結び付けられる点にあります。

ただし、ローカルで解析したからといって、調査結果がすべてローカルにとどまるとは限りません。接続したエージェントが結果を受け取り、そのモデルプロバイダーが独自のデータポリシーを適用するためです。

REAのメンテナーは、本プロジェクトの想定用途を、適法なリバースエンジニアリングの研究、解析、再構築に限定しています。許可の取得や適用される法的要件を満たす責任は利用者にあります。また、技術的な機能やプラットフォームのサポート範囲は、選択した解析プロバイダーによって異なります。

1万6,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。 チームで試してみる

翻訳元: https://cyberpress.org/new-open-source-rea-tool/

本記事は cyberpress.org の記事を翻訳・要約したものです。