symgraph/GhidrAssist

An LLM extension for Ghidra to enable AI assistance in RE.

解決する課題

バイナリのリバースエンジニアリングは、複雑なアセンブリやデコンパイルされたコードを手動で追跡する必要がある、労働集約的なプロセスです。GhidrAssistは、大規模言語モデル (LLMs) をGhidraに直接統合することで、コードの解説、脆弱性検出、バイナリの構造解析を自動化し、この作業負荷を軽減します。

仕組み

これはGhidraプラグインとして機能し、OpenAI互換のAPI(ローカルまたはクラウド)に接続します。以下の高度なAI技術を採用しています:

  • Graph-RAG: SQLiteに保存された階層的なセマンティック知識グラフ (Statement $\rightarrow$ Block $\rightarrow$ Function $\rightarrow$ Module $\rightarrow$ Binary) を構築し、LLMを介さない高速な検索と構造探索を可能にします。
  • ReAct Agentic Mode: 自律エージェントが「思考-行動-観察」(Think-Act-Observe) ループを使用して、調査手順の提案、ツールの実行、および調査結果の統合を行います。
  • MCP Integration: Model Context Protocol を使用して、LLMがナビゲーションや分析のために特定のGhidraツールを呼び出せるようにします。
  • Security Extraction: ネットワーク、ファイルI/O、暗号化APIを静的にスキャンし、関数にリスクレベルとアクティビティプロファイルを割り当てます。

対象ユーザー

Ghidraを使用しており、AI主導の自動化とセマンティック検索を活用して分析を加速させたいセキュリティ研究者、マルウェアアナリスト、リバースエンジニア。

ハイライト

  • インタラクティブなAI支援: 逆アセンブルおよび擬似Cコードの解説を提供し、マルチターンのチャットインターフェースを備えています。
  • 自律的な調査: エージェントモードにより、バイナリのナビゲーション、変数のリネーム、データフローの追跡を自律的に実行できます。
  • セマンティック知識グラフ: Leidenアルゴリズムを用いたコミュニティ検出により、関連する関数を論理的なモジュールに自動的にグループ化します。
  • カスタムコンテキスト: Luceneベースの検索によるRAGをサポートしており、カスタムドキュメントやエクスプロイトのメモをクエリに注入できます。
  • 推論制御: 拡張思考をサポートするモデルに対して、ユーザーが「努力レベル」(Low, Medium, High) を調整できます。

関連

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