Dryxio/auto-re-agent

Open-source AI reverse-engineering agent using Ghidra and LLMs to reconstruct and validate C/C++ functions from binaries.

何を解決するか

auto-re-agent は、コンパイル済みバイナリを再構成可能な C/C++ ソースコードに変換する面倒なプロセスを自動化します。従来のデコンパイラは擬似コードを提供しますが、このツールはプロジェクトのソースツリーに統合できる、構文的に正しい、ビルド可能な、テスト可能な候補実装を生成することを目指しています。

動作方法

このツールは、プログラム解析とLLM駆動の再構成を組み合わせた自律的なパイプラインを調整します。

  1. 証拠収集: ghidra-ai-bridge を使用して、Ghidra からデコンパイル結果、アセンブリ、制御フローグラフ(CFG)、Pコード、構造的データ(構造体、列挙型、vtable)を抽出します。
  2. リバーサー/チェックラー ループ: 「リバーサー」LLM が候補実装を生成し、それに対して独立した「チェックラー」LLM がレビューを行います。このループは、コードが承認されるか、上限に達するまで繰り返されます。
  3. 保守的な検証: エージェントは、生成されたコードとバイナリ証拠の間に不一致がないかを検出する構造的検証器を採用し、11の組み込みヒューリスティックなパリティ信号(例:ソースの欠落、呼び出し回数の不一致など)を用いて問題を警告します。
  4. 検証ゲート: 一時的なプロジェクトコピー内で、プロジェクト固有のビルドおよびテストコマンド(例:CMake と CTest を通じて)を自動実行し、生成されたコードが実際にビルドされ、テストを通過することを保証します。

対象ユーザー

レガシーバイナリや閉鎖型プロジェクトで作業するソフトウェアリバースエンジニアや開発者で、大規模に高品質な C/C++ 関数を再構成する必要がある人向けです。

特徴

  • マルチLLM対応: Claude(API/CLI)、OpenAI互換API、Codex CLI に対応。
  • 自律的ワークフロー: 関数選択、証拠収集、反復的改善を人間の継続的介入なしで処理。
  • ビルド検証済み: 実際のビルドシステムと統合され、構文的に正しいだけでなく、機能的に実行可能であることを保証。
  • 知識グラフ: 関数、関数呼び出し、グローバル変数をつなぐ永続的な knowledge-graph.json を維持し、LLM に文脈を提供。
  • 非破壊的: 元のソースツリーを直接変更せずに、オーバーレイや一時ディレクトリに候補を生成。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト