clearbluejar/pyghidra-mcp

Python Command-Line Ghidra MCP

解決する課題

pyghidra-mcp は、Ghidra ソフトウェアリバースエンジニアリング (SRE) スイートと Model Context Protocol (MCP) の間のブリッジを提供し、LLM ベースのエージェントや AI ツールが Ghidra の解析機能とプログラム的に対話できるようにします。AI エージェントが逆コンパイルされたコードのクエリ、シンボルの検索、リバースエンジニアリングワークフローの自動化を可能にすることで、手動での深いバイナリ解析という課題を解決します。

仕組み

このプロジェクトは pyghidra と jpype を使用して、Python を Ghidra の Java ベースの ProgramAPI および FlatProgramAPI に接続し、これらの機能を MCP ツールとして公開します。サーバーは主に2つのモードで動作します。

  • Headless モード: 自動化および CI/CD パイプライン向けの CLI 駆動型サーバー。
  • GUI モード: Ghidra GUI (CodeBrowser) を起動してライブプログラム状態を共有し、AI エージェントが GUI を操作したり、ユーザーが AI による変更をリアルタイムで確認したりできます。

また、ChromaDB を介したベクトル埋め込みを使用してセマンティックコード検索を実装しており、逆コンパイルされた関数やシンボル全体に対してあいまい検索が可能です。

対象ユーザー

  • リバースエンジニア: LLM を使用して反復的な解析タスクを自動化したい方。
  • セキュリティ研究者: 大規模なバイナリトリアージやマルウェア解析を行う専門家。
  • AI エージェント開発者: ソフトウェアセキュリティや脆弱性研究のための自律型エージェントを構築する開発者。

主な特徴

  • デュアル動作モード: Headless 自動化とライブ GUI 統合の両方をサポート。
  • セマンティック検索: ChromaDB を使用した、擬似 C コードおよびシンボルのベクトルベースのあいまい検索。
  • エージェント最適化: トークン使用量を最小限に抑えるためのコンパクトなツール説明と焦点を絞ったデータ返信。
  • 柔軟なトランスポート: streamable-http (推奨)、stdio、SSE をサポートし、さまざまな MCP ホスト統合に対応。
  • プロジェクト全体の解析: 単一の Ghidra プロジェクト内で複数のバイナリを同時にリバースエンジニアリング可能。

関連

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