Dryxio/reagent

Reconstruct and validate C/C++ code from compiled programs with AI.

何を解決するか

ReAgent は、コンパイル済みバイナリから C/C++ 関数を再構成する自動化を目的として設計されています。Raw decompiler 出力(しばしば読みにくい)と高品質で検証可能なソースコードの間のギャップを、AI エージェントを用いてバイナリの証拠に基づいて段階的に実装を改善することで埋めます。

動作方法

このツールは Ghidra と統合され、デコンパイルコード、アセンブリ、制御フローグラフ(CFG)、クロスリファレンスなどの証拠を収集し、LLM のパイプラインに供給します。"reverser" モデルを使って候補コードを生成し、別途 "checker" モデルで検証を行います。

このプロセスは厳格な検証ワークフローによって管理されます:

  1. 構造的検証:生成されたコードをバイナリの証拠と比較し、強い不一致を特定します。
  2. ビルド・テストゲート:プロジェクト固有のビルドおよびテストコマンドを隔離されたプロジェクトコピー内で実行し、コードが実際にコンパイルされテストを通過することを確認します。
  3. パリティ分析:11 の組み込みヒューリスティックシグナル(例:ソースの欠落やコール回数の不一致のチェック)を使用して、潜在的な問題をマークします。

対象ユーザー

このツールは、デコンパイラで一時的な手動解析を行うのではなく、プロジェクト規模でバイナリからソースコードを再構成する必要があるリバースエンジニアやソフトウェアアナリスト向けに構築されています。

特徴

  • 自律的ワークフロー:証拠収集、実装、レビューを制限付きループで統合します。
  • マルチ-LLM 対応:Claude API/CLI、OpenAI互換 API、Codex CLI に対応しています。
  • 隔離された検証:ビルドおよびテストコマンドを一時的なプロジェクトコピー内で実行し、元のソースツリーを変更しません。
  • 知識グラフ:関数、呼び出し、グローバル変数を接続する永続的な証拠グラフを生成します。
  • 保守的検証:チェッカー、構造検証、ビルドテスト、パリティシグナルの多層アプローチを用いて、高信頼性の結果を保証します。

関連

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