LLMクライアントがバイナリを逆コンパイル・解析できるよう、Ghidraのリバースエンジニアリング機能を公開するMCPサーバー。
symgraph/GhidrAssist
Ghidra向けのLLM拡張機能。AIによるコード解説、チャット、エージェント型解析をリバースエンジニアリングのワークフローに追加します。
- スター
- 767
- フォーク
- 77
- 未解決の Issue
- 4
- 最終コミット
- 5 日前
これは何?
GhidrAssistは、リバースエンジニアが大規模言語モデルを利用できるようにするGhidra用のJavaプラグインです。OllamaやLM Studioなどのローカルサーバー、OpenAI、Anthropic、Azureなどのクラウドプロバイダーを含む、OpenAI v1互換APIであれば利用できます。ユーザーは、逆アセンブル結果や逆コンパイルされた擬似Cコード内の関数について説明を求めたり、履歴を保存しながら複数ターンのチャットを行ったり、関数のコンテキストを含むカスタムクエリを直接実行したりできます。
基本的なプロンプト機能に加えて、プラグインは文、ブロック、関数、モジュール、バイナリの各レベルにまたがる、バイナリのセマンティックナレッジグラフを構築します。LLMによる要約をSQLiteに保存し、Leidenアルゴリズムで関数のコミュニティを検出するとともに、ネットワーク、ファイルI/O、暗号関連APIの使用状況をリスクレベルとともに抽出します。ReActエージェントモードでは、調査手順を計画し、ツールを呼び出して、調査結果を統合できます。MCPに対応しており、Ghidra固有のツールを提供するGhidrAssistMCPサーバーと連携できます。
このプロジェクトは、Ghidra内でLLMの支援を受けたいリバースエンジニアやセキュリティ研究者を対象としています。Ghidra 11.0以降が必要です。
主な機能
- 01逆アセンブル結果や逆コンパイルされた擬似Cコード内の関数を解説します。
- 02履歴を保持した複数ターンのチャットに対応します。
- 03階層型のセマンティックナレッジグラフを構築し、SQLiteに保存します。
- 04ネットワーク、ファイルI/O、暗号関連APIの使用状況をリスクレベルとともに抽出します。
- 05調査手順を計画・実行するReActエージェントを利用できます。
- 06SSE経由でMCPサーバーに接続し、Ghidra固有のツールを利用できます。
ユースケース
- バイナリのトリアージ中に、よく知らない関数の概要をすばやく把握する。
- リスクラベル付きで、バイナリ内のネットワーク、ファイル、暗号関連APIの使用状況を調べる。
- コードをクラウドサービスに送信せずに、独自バイナリをローカルLLMで解析する。
- 関数をまたいだデータフローの追跡など、複数段階にわたる質問を行う。
クイックスタート
- 1
バイナリリリースのZIPをGhidraのExtensionsディレクトリにコピーします(必要な場合)。
- 2
Ghidraで[File]>[Install Extension]に移動し、GhidrAssistを有効にします。
- 3
CodeBrowserを開いてGhidrAssistを有効にし、設定でAPIホストとAPIキーを設定します。
使う前に知っておきたいこと
- OpenAI v1互換のLLM APIが必要です。有料のAPIキーまたはローカルのモデルサーバーが必要になる場合があります。
- Ghidra 11.0以降が必要です。
- エージェントモードとActionsには、信頼性の高いツール呼び出しに対応したモデルが必要です。
トピック
よくある質問
- GhidrAssist とは?
- Ghidra向けのLLM拡張機能。AIによるコード解説、チャット、エージェント型解析をリバースエンジニアリングのワークフローに追加します。 GhidrAssistは、リバースエンジニアが大規模言語モデルを利用できるようにするGhidra用のJavaプラグインです。OllamaやLM Studioなどのローカルサーバー、OpenAI、Anthropic、Azureなどのクラウドプロバイダーを含む、OpenAI v1互換APIであれば利用できます。ユーザーは、逆アセンブル結果や逆コンパイルされた擬似Cコード内の関数について説明を求めたり、履歴を保存しながら複数ターンのチャットを行ったり、関数のコンテキストを含むカスタムクエリを直接実行したりできます。
- GhidrAssist は無料で使えますか?ライセンスは?
- GhidrAssist は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- GhidrAssist は今もメンテナンスされていますか?
- 活発にメンテナンス中。GhidrAssist の最終コミットは 2026年10月16日 です。
- GhidrAssist は何に使えますか?
- バイナリのトリアージ中に、よく知らない関数の概要をすばやく把握する。 リスクラベル付きで、バイナリ内のネットワーク、ファイル、暗号関連APIの使用状況を調べる。 コードをクラウドサービスに送信せずに、独自バイナリをローカルLLMで解析する。 関数をまたいだデータフローの追跡など、複数段階にわたる質問を行う。
- GhidrAssist のインストール方法は?
- バイナリリリースのZIPをGhidraのExtensionsディレクトリにコピーします(必要な場合)。 Ghidraで[File]>[Install Extension]に移動し、GhidrAssistを有効にします。 CodeBrowserを開いてGhidrAssistを有効にし、設定でAPIホストとAPIキーを設定します。
- GhidrAssist はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/symgraph/GhidrAssist
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
AIエージェントがネイティブバイナリ、Electronアプリ、.NETアセンブリ、Webサイトを解析するMCPサーバー兼CLI。
AIアシスタントからGhidraを操作し、バイナリを分析できるMCPサーバー。逆コンパイル、リネーム、注釈付けなど200以上のツールを提供。
Janは、LLMをダウンロードしてローカルで実行できるオープンソースのデスクトップアプリです。ChatGPT風のUIを備え、任意でクラウドモデルにも接続できます。
WebGPUを使ってブラウザー内でLLM推論を完結させるTypeScriptエンジン。OpenAI互換APIを提供します。
OpenAI互換APIに接続できるSvelteKit製LLMチャットUIで、HuggingChatを支えるコードベース。