メインコンテンツへ移動
AIチュートリアル

REAを使ってバイナリ、JavaScript、Electron、.NETアプリをリバースエンジニアリングする方法

REAのインストール方法、オプションのHopper、Ghidra、IDAバックエンドの接続方法、エージェントにバイナリやアプリケーションを調査させる方法を解説します。証拠に基づく分析、保存したメモ、最新のストリーミング、Electron、ブラウザ、WebMCP機能についても説明します。

REAでバイナリ、JavaScript、Electron、.NETアプリを解析する方法

REAとは

REA(Reverse Engineer Anything)は、Windows 10および11 x64向けのエージェント指向リバースエンジニアリングデスクです。バイナリ、JavaScript、Electronアプリケーション、.NETソフトウェアを対象とした1つのMCPワークフローを提供します。

このプロジェクトは、構築済みアプリケーションをローカルで分析し、その証拠を報告するため、元のソースコードにアクセスする必要はありません。ワークフローでは、Hopper、Ghidra、IDAのいずれかがすでに利用可能な場合に使用できます。また、付属のCLIとエージェント設定により、分析対象を扱うための開始点が提供されます。

REAのリバースエンジニアリングインターフェース

主な機能

  • 1つのMCPワークフロー:バイナリ、JavaScript、Electron、.NETの各対象を横断して作業できます。
  • 証拠に基づくローカル分析:構築済みアプリを調査し、報告された証拠をもとに追加調査を進められます。
  • CLIとエージェント設定:付属のコマンドまたは同梱CLIで環境を設定できます。
  • オプションのリバースエンジニアリングバックエンド:すでに利用している場合は、Hopper、Ghidra、IDAをREAに接続できます。
  • ノートの保存:分析ノートはfiles/notes/に保存されます。
  • 最近の更新:バージョン6.3.0では、ストリーミングJSONの入出力、Electronの整合性チェック、ブラウザとWebMCPの処理、Ghidra・Hopper・IDAの修正、エージェントスキルのバージョン固定が追加されました。

必要条件

REAをインストールする前に、以下を準備してください。

  • Windows 10またはWindows 11 x64システム。
  • npxを使用する場合はNode.js。
  • 既存のリバースエンジニアリングバックエンドに接続する場合はHopper、Ghidra、またはIDA。これらのツールは任意です。

REAのインストールと設定

1. x64パッケージをダウンロードする

REAのx64 ZIPアーカイブをダウンロードし、Windowsマシン上で展開します。同梱のコマンドラインツールがサポートファイルにアクセスできるよう、展開したファイルはまとめて保持してください。

2. エージェント設定を実行する

Node.jsが利用可能な状態で、ターミナルからエージェント設定コマンドを実行します。

npx rea-agents@latest setup

ダウンロードしたパッケージに同梱されているCLIも使用できます。READMEでは、どちらもサポートされる設定方法として示されています。

REAの設定ワークフロー

3. オプションのバックエンドを設定する

Hopper、Ghidra、またはIDAがすでにインストールされている場合は、設定または構成のワークフロー中に、該当するツールをREAに指定します。REAはリバースエンジニアリングデスク用にこれらのバックエンドをサポートしています。WindowsでのGhidraのホストパス対応は実験的と説明されているため、その構成を使用する場合はCLIガイドを確認してください。

基本的な使い方

エージェントに対象を調査させる

設定が完了したら、調査するバイナリまたはアプリケーションをエージェントに指定します。READMEの基本ワークフローは意図的にシンプルです。エージェントに対象を分析させ、その後、報告された証拠を確認します。

  1. 調査する構築済みバイナリまたはアプリケーションを選択します。
  2. REAのワークフローから対象を利用できるようにします。
  3. エージェントにバイナリまたはアプリの調査を依頼します。
  4. 調査結果と裏付けとなる証拠を確認します。
  5. files/notes/に作成されたノートを確認します。

REAは構築済みアプリケーションを扱うため、ソースコードは必要ありません。そのため、パッケージ化またはコンパイル済みの出力しか利用できないアプリケーションの調査に適しています。

エージェント支援によるアプリケーション分析

保存されたノートを確認する

調査記録としてノートディレクトリを使用します。

files/notes/

分析の完了後に生成されたノートを読み、後から確認できるよう調査結果と証拠を保存します。記録を残しておくと、対象間の観察結果を比較したり、以前の調査に戻ったりしやすくなります。

高度なヒント

対象に適したバックエンドを使う

REAは複数の分析領域を1つのMCPワークフローにまとめますが、すでにHopper、Ghidra、またはIDAを利用している場合は、オプションのバックエンドも役立ちます。すべての対象を同じように扱うのではなく、既存のワークフローに合うツールをREAに指定してください。

調査ではアプリケーションの種類を分ける

REAはバイナリ、JavaScript、Electron、.NETに対応しています。Electron対象では、6.3.0リリースにElectronの整合性チェックが含まれています。同じリリースではブラウザとWebMCPの処理も追加されているため、分析を計画する際はこれらのアプリケーション種別を明示的に考慮してください。

ストリーミングJSON統合を使う

バージョン6.3.0はJSONのストリーミング入出力に対応しています。外部エージェントや自動化ワークフローで分析データを段階的に交換する必要がある場合に便利ですが、READMEでは追加のコマンドラインフラグや詳細なメッセージスキーマは指定されていません。

エージェントスキルのバージョンを管理する

6.3.0リリースにはエージェントスキルのバージョン固定が含まれています。再現性が重要な場合は、記録なしにバージョンを変更せず、設定したスキルのバージョンをプロジェクトで使用するバージョンに合わせてください。

推測ではなく証拠を使う

REAはローカル分析から得られた証拠を報告するよう設計されています。結論の根拠として報告された証拠と保存済みノートを扱い、各調査の状況をfiles/notes/に記録してください。

REAの分析ノート

よくある質問

アプリケーションのソースコードは必要ですか?

いいえ。REAは構築済みアプリケーションを調査し、証拠を報告します。

WindowsでGhidraを使用できますか?

WindowsでのGhidraのホストパス対応は実験的です。関連する設定の詳細についてはCLIガイドを参照してください。

Hopper、Ghidra、IDAは必須ですか?

いいえ。これらは任意のバックエンドです。要件一覧では任意項目として記載されていますが、導入ワークフローでは同梱のCLIとnpx rea-agents@latest setupコマンドもサポートされています。

結論

REAは、コンパイル済みアプリケーションやパッケージ化されたアプリケーションを対象とした、エージェント支援によるリバースエンジニアリングのための、Windowsに特化したワークフローを提供します。x64パッケージをダウンロードして展開し、エージェントのセットアップを実行します。必要に応じて任意のバックエンドに接続し、エージェントに対象を調査させてください。その後、files/notes/にある証拠とメモを使って調査を整理します。