Show HN:Ghidra MCP サーバ― – AI支援逆解析のための110ツール

2026/02/04 15:51

Show HN:Ghidra MCP サーバ― – AI支援逆解析のための110ツール

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:


Summary

Ghidra MCP Server v2.0.0 は、AI アシスタントや自動化フレームワークに対して Ghidra のリバースエンジニアリング機能をすべて公開する本番環境で使用可能な Model Context Protocol (MCP) サーバです。関数解析、データ構造探索、文字列抽出、インポート/エクスポートマッピング、メモリレイアウト、クロスバイナリドキュメントなどを網羅する 110 の MCP ツールが付属しています。

主な技術的詳細

  • エンドポイント:
    check_connection
    get_metadata
    list_functions
    decompile_function
    list_segments
    get_xrefs_to/from
    get_function_hash
    apply_data_type
    、関数名変更、スクリプト管理 (
    run_script
    save_ghidra_script
    ) 及び
    switch_program
    によるマルチプログラムサポート。
  • 転送オプション:
    stdio
    (AI ツール推奨)と SSE/HTTP。
  • サーバ起動: Ghidra の UI から – Tools → GhidraMCP → Start MCP Server (デフォルトは
    http://127.0.0.1:8080/
    )。
  • デプロイメント: Maven (
    mvn clean package assembly:single -DskipTests
    ) でビルドし、Ghidra Extensions フォルダーへ配置するか PowerShell スクリプトを使用。
  • 前提条件: Java 21 LTS(OpenJDK)、Apache Maven 3.9+、Ghidra 12.0.2、Python 3.8+ with pip;14 の特定 Ghidra JAR を
    lib/
    にコピーする必要あり。

パフォーマンス

バッチ呼び出しで API トラフィックを 93 % 削減でき、多くの操作は 1 秒未満で完了します。

自動化と拡張性

リポジトリには 70+ 自動化スクリプト (

ghidra_scripts/
)、包括的ドキュメント (
docs/
)、MCP を HTTP REST に変換する Python MCP ブリッジ (
bridge_mcp_ghidra.py
) が含まれ、
re-universe
cheat-engine-server-python
などのプロジェクトとの統合ポイントがあります。

今後の計画

次期リリースではより多くの MCP ツールを追加し、自動化スイートを拡充し、マルチプログラム解析サポートを強化し、標準 MCP インターフェイスを通じた AI 統合をさらに広げる予定です。

本文

Ghidra MCP サーバー

Ghidra の強力な逆コンパイル機能と最新の AI ツール・自動化フレームワークを結ぶ、実運用に耐える Model Context Protocol(MCP)サーバーです。


🌟 主な特徴

コア MCP 統合

  • 完全な MCP 互換 – Model Context Protocol の完全実装
  • 110 個の MCP ツールが利用可能 – バイナリ解析用 API を網羅
  • 実運用レベルの信頼性 – バッチ処理と原子トランザクションをテスト済み
  • リアルタイム解析 – Ghidra の解析エンジンとライブ統合

バイナリ解析機能

  • 関数解析 – デコンパイル、呼び出しグラフ、クロス参照
  • データ構造探索 – 自動で struct/union/enum を生成
  • 文字列抽出 – 文字列の網羅的解析と分類
  • インポート/エクスポート解析 – シンボルテーブル・ライブラリ依存関係マッピング
  • メモリマッピング – メモリレイアウトを完全に文書化
  • クロスバイナリドキュメント – バイナリ版間で関数ハッシュ照合

開発と自動化

  • 自動開発サイクル – ビルド・テスト・デプロイ・検証パイプライン
  • Ghidra スクリプト管理 – MCP 経由でスクリプトの作成、実行、管理
  • マルチプログラム対応 – 複数開いたプログラムを切り替えて比較可能
  • バッチ操作 – 効率的な一括リネーム・コメント付与・型指定

🚀 クイックスタート

前提条件

コンポーネントバージョン
Java21 LTS(OpenJDK 推奨)
Apache Maven3.9+
Ghidra12.0.2(または互換バージョン)
Python3.8+(pip付き)

インストール

# リポジトリをクローン
git clone https://github.com/bethington/ghidra-mcp.git
cd ghidra-mcp

# Python の依存関係をインストール
pip install -r requirements.txt

# Ghidra ライブラリをコピー(ライブラリの完全リストは Library Dependencies を参照)
# Windows – 提供されているバッチスクリプトを実行
copy-ghidra-libs.bat "C:\path\to\ghidra_12.0.2_PUBLIC"

# Linux/Mac – Ghidra インストールから手動でコピー
# プラグインをビルド(統合テストはスキップ)
mvn clean package assembly:single -DskipTests

# Ghidra にデプロイ
.\deploy-to-ghidra.ps1  # Windows
# または手動で Ghidra Extensions フォルダへコピー
Copy-Item target\GhidraMCP-2.0.0.zip "C:\ghidra\Extensions\Ghidra\"

基本的な使用方法

オプション 1 – Stdio Transport(AI ツール向けに推奨)

python bridge_mcp_ghidra.py

オプション 2 – SSE Transport(Web/HTTP クライアント用)

python bridge_mcp_ghidra.py --transport sse --mcp-host 127.0.0.1 --mcp-port 8081

Ghidra 内で:

  • Ghidra を起動し、バイナリを読み込む
  • Tools > GhidraMCP > Start MCP Server を選択
  • デフォルトでは
    http://127.0.0.1:8080/
    でサーバーが稼働

📊 実運用パフォーマンス

指標
MCP ツール数110(完全実装)
スピード多くの操作で秒以下の応答
効率バッチ操作で API 呼び出しを 93 % 削減
信頼性原子トランザクション(全成功または全失敗)
デプロイ自動バージョン認識スクリプト付き

🛠️ API リファレンス

コア操作

  • check_connection
    – MCP 接続確認
  • get_metadata
    – プログラムのメタデータ取得
  • get_version
    – サーバー版情報
  • get_entry_points
    – バイナリエントリポイント探索

関数解析

  • list_functions
    – 全関数(ページング)
  • search_functions_by_name
    – 名前/パターン検索
  • search_functions_enhanced
    – フィルタ付き高度検索
  • decompile_function
    – C 疑似コードへのデコンパイル
  • get_decompiled_code
    – アドレス指定でデコンパイル済みコード取得
  • get_function_callers
    /
    get_function_callees
    – 呼び出し関係
  • get_function_call_graph
    /
    get_full_call_graph
    – 関係グラフ
  • analyze_function_complete
    /
    analyze_function_completeness
    – 完全解析

メモリ & データ

  • list_segments
    – メモリセグメントとレイアウト
  • get_function_by_address
    – アドレスにある関数
  • disassemble_function
    /
    disassemble_bytes
    – アセンブリ一覧
  • get_xrefs_to
    /
    get_xrefs_from
    /
    get_bulk_xrefs
    – クロス参照
  • analyze_data_region
    – メモリ領域構造解析
  • inspect_memory_content
    – 生メモリ内容表示
  • detect_array_bounds
    – 配列境界検出

クロスバイナリドキュメント(v1.9.4+)

  • get_function_hash
    /
    get_bulk_function_hashes
    – 正規化オペコードの SHA‑256 ハッシュ
  • get_function_documentation
    /
    apply_function_documentation
    – ドキュメントのエクスポート/インポート
  • build_function_hash_index
    – 永続 JSON インデックス構築
  • lookup_function_by_hash
    – インデックスで一致関数検索
  • propagate_documentation
    – すべての一致インスタンスへドキュメント適用

データ型 & 構造

  • list_data_types
    /
    search_data_types
    – 利用可能なデータ型
  • create_struct
    ,
    add_struct_field
    ,
    modify_struct_field
    ,
    remove_struct_field
    – 構造体管理
  • create_enum
    ,
    get_enum_values
    – 列挙型操作
  • create_array_type
    – 配列データ型作成
  • apply_data_type
    ,
    delete_data_type
    ,
    consolidate_duplicate_types
    ,
    get_valid_data_types
    – データ型ユーティリティ

シンボル & ラベル

  • list_imports
    ,
    list_exports
    ,
    list_external_locations
    – シンボルテーブル
  • list_strings
    – 抽出済み文字列と解析結果
  • list_namespaces
    ,
    list_globals
    – 名前空間・グローバル変数一覧
  • create_label
    ,
    batch_create_labels
    ,
    delete_label
    ,
    batch_delete_labels
    ,
    rename_label
    ,
    rename_or_label
    – ラベル管理

リネーム & ドキュメント

  • rename_function
    ,
    rename_function_by_address
    ,
    rename_data
    ,
    rename_variables
    ,
    rename_global_variable
    ,
    rename_external_location
    – リネームユーティリティ
  • batch_rename_function_components
    – 一括リネーム
  • set_decompiler_comment
    ,
    set_disassembly_comment
    ,
    set_plate_comment
    ,
    get_plate_comment
    – コメント管理
  • batch_set_comments
    – 一括コメント設定

タイプシステム

  • set_function_prototype
    ,
    set_local_variable_type
    ,
    set_parameter_type
    ,
    batch_set_variable_types
    – 関数・変数型
  • set_variable_storage
    ,
    set_function_no_return
    – ストレージ制御と関数属性
  • list_calling_conventions
    ,
    get_function_variables
    ,
    get_function_labels
    – 呼び出し規約とメタデータ

Ghidra スクリプト管理

  • list_scripts
    ,
    run_script
    ,
    list_ghidra_scripts
    ,
    save_ghidra_script
    ,
    get_ghidra_script
    ,
    run_ghidra_script
    ,
    update_ghidra_script
    ,
    delete_ghidra_script
    – スクリプトライフサイクル

マルチプログラム対応

  • list_open_programs
    ,
    get_current_program_info
    ,
    switch_program
    ,
    list_project_files
    ,
    open_program
    ,
    compare_programs_documentation
    – プログラム操作

解析ツール

  • find_next_undefined_function
    ,
    find_undocumented_by_string
    ,
    batch_string_anchor_report
    ,
    search_byte_patterns
    ,
    get_assembly_context
    ,
    analyze_struct_field_usage
    ,
    get_field_access_context
    ,
    create_function
    ,
    get_function_jump_target_addresses
    – その他解析ユーティリティ

詳細は

docs/README.md
を参照してください。


🏗️ アーキテクチャ

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   AI/Automation │◄──►│   MCP Bridge    │◄──►│  Ghidra Plugin  │
│     Tools       │    │ (bridge_mcp_ghidra.py) │    │ (GhidraMCP.jar) │
└─────────────────┘    └─────────────────┘    └─────────────────┘
  • MCP プロトコル – stdio/SSE
  • HTTP REST – localhost:8080
  • Ghidra API – Program, Listing

🔧 開発

ソースからビルドする

# プラグインをビルド(統合テストはスキップ)
mvn clean package assembly:single -DskipTests

# Ghidra にデプロイ
.\deploy-to-ghidra.ps1   # Windows

プロジェクト構成

ghidra-mcp/
├── bridge_mcp_ghidra.py        # MCP サーバー(Python)
├── src/main/java/              # Ghidra プラグイン(Java)
├── lib/                        # Ghidra ライブラリ依存
├── ghidra_scripts/             # 70+ 自動化スクリプト
├── docs/                       # ドキュメント
│   ├── prompts/
│   ├── releases/
│   └── project-management/
├── examples/                   # 使用例
└── scripts/                    # ビルド・ユーティリティスクリプト

ライブラリ依存

lib/
フォルダには Ghidra の JAR ファイルが必要です。提供されたスクリプトでコピーしてください:

# Windows
copy-ghidra-libs.bat "C:\path\to\ghidra_12.0.2_PUBLIC"

必須ライブラリ(14 個、約 37 MB):

ライブラリ用途
Base.jarコア Ghidra 機能
Decompiler.jarデコンパイルエンジン
PDB.jarMicrosoft PDB シンボルサポート
FunctionID.jar関数識別
SoftwareModeling.jarプログラムモデル API
Project.jarプロジェクト管理
Docking.jarUI ドッキングフレームワーク
Generic.jar汎用ユーティリティ
Utility.jarコアユーティリティ
Gui.jarGUI コンポーネント
FileSystem.jarファイルシステムサポート
Graph.jar呼び出しグラフ解析
DB.jarデータベース操作
Emulation.jarP‑code エミュレーション

注意: ライブラリはリポジトリに含まれていません(

.gitignore
)。ビルド前に Ghidra インストールからコピーしてください。


📚 ドキュメント

  • コアドキュメント – ナビゲーション、プロジェクト構造、命名規則
  • AI ワークフロープロンプト – プロンプトシステムガイドとワークフロー
  • リリース履歴 – 変更ログと詳細リリースノート

参照:

CONTRIBUTING.md
を確認してください。


🤝 コントリビューション

  1. リポジトリをフォーク
  2. 機能ブランチ作成 (
    git checkout -b feature/amazing-feature
    )
  3. 変更をビルド&テスト(
    mvn clean package assembly:single -DskipTests
  4. 必要に応じてドキュメント更新
  5. コミット & プッシュ (
    git push origin feature/amazing-feature
    )
  6. Pull Request を作成

📄 ライセンス

本プロジェクトは Apache License 2.0 の下でライセンスされています。詳細は

LICENSE
ファイルをご覧ください。


🏆 実運用ステータス

指標
バージョン2.0.0
MCP ツール数110(完全実装)
コンパイル成功率✅ 100 %
バッチ効率API 呼び出しを 93 % 削減
Ghidra スクリプト70+ 自動化スクリプト
ドキュメントAI プロンプト付きで網羅的

詳細は

CHANGELOG.md
を参照してください。


🙏 謝辞

  • Ghidra チーム – 逆コンパイルプラットフォームの提供
  • Model Context Protocol – 標準化された AI 統合
  • コントリビューター – テスト、フィードバック、改善

同じ日のほかのニュース

一覧に戻る →

2026/02/05 0:08

「Voxtral Transcribe 2」(ボクセトラル・トランスクライブ 2)

## Japanese Translation: Voxtral は次世代の音声認識モデルを 2 つリリースしました:**Mini Transcribe V2**(バッチ)と **Realtime**(ライブ)。RealtimはApache 2.0 ライセンスで Hugging Face 上で入手可能で、サブ 200 ms のレイテンシーを設定でき、480 ms まで下げられます。480 ms の遅延で字幕用に 2.4 秒のディレイがあり、WER(単語誤り率)が 1–2% 内に収まります。両モデルとも **13 言語**(英語、中国語、ヒンディー語、スペイン語、アラビア語、フランス語、ポルトガル語、ロシア語、ドイツ語、日本語、韓国語、イタリア語、オランダ語)をサポートします。 Mini Transcribe V2 は FLEURS ベンチマークで約 **4 % WER** を達成し、ElevenLabs の Scribe v2 より音声処理速度が約 3 倍速く、API 経由で **$0.003/min** のコストです。Realtime は同等の精度を **4‑B パラメータ** のフットプリントで実現し、エッジデプロイが可能です。また、そのストリーミングアーキテクチャは音声が到着した時点で文字起こしを行い、他の API で一般的なチャンクベースの処理を回避します。 企業向け機能には、スピーカー分離(開始/終了タイムスタンプ付き)、単語レベルのタイムスタンプ、最大 100 語・フレーズまでのコンテキストバイアシング(英語最適化)、ノイズ耐性、および **3 時間** までの録音サポートがあります。Mistral Studio のオーディオプレイグラウンドでは、両モデルを最大 10 ファイル(各ファイル ≤1 GB)でテストでき、スピーカー分離、タイムスタンプ粒度、およびコンテキストバイアシングのオプションがあります。 ユースケースは **会議インテリジェンス、音声エージェント/仮想助手、コールセンター自動化、メディア/放送字幕、コンプライアンスポータル** など多岐にわたり、すべて GDPR/HIPAA 対応のオンプレミスまたはプライベートクラウドデプロイでサポートされます。Voxtral は、GPT‑4o mini Transcribe、Gemini 2.5 Flash、Assembly Universal、Deepgram Nova を上回る最高の価格対性能を誇る転写 API と主張しています。 同社は開発者にチームへの参加を呼びかけており、世界クラスの音声 AI の構築と継続的な製品拡大・将来機能リリースを示唆しています。

2026/02/01 21:43

**Claude Code** クォータが尽きたらローカルモデルに接続します。

## Japanese Translation: **概要:** より安価な Anthropic Claude プランを利用しているユーザーは、コーディング中に日次または週次のクォータ制限に直面することが多いです。この記事では、Claude Code を Anthropic の API ではなくローカルのオープンソースモデルに接続することでこれらの制約を回避する方法について説明しています。実際的な2つの手法を紹介します: 1. **LM Studio v0.4.1** を使用する方法 ― モデルは検索インターフェイス経由でインストール(推奨コンテキストサイズ > 25k トークン)、`lms server start --port 1234` でサーバーを起動し、環境変数 `export ANTHROPIC_BASE_URL=http://localhost:1234` と `export ANTHROPIC_AUTH_TOKEN=lmstudioc` を設定します。次に Claude Code を `claude --model openai/gpt‑oss‑20b` で起動し、Claude 内で `/model` コマンドを使ってモデルの確認または切替えを行います。 2. **Llama.CPP** を直接使用する方法 ― これにより Claude Code はローカルエンドポイントを指すことも可能です。 推奨されるモデルとしては、Z.AI の **GLM‑4.7‑Flash** と **Qwen3‑Coder‑Next** が挙げられています。また、小型で量子化されたバージョンを使用するとディスク容量と GPU メモリを節約できますが、その代償として品質や速度が若干低下する可能性があります。ローカル OSS モデルは遅く、コード生成の質が低下することもありますが、クォータ制限やコストが問題になる際に有効なバックアップ手段となります。最後に、読者にはこの設定を試し、さまざまなモデルをテストして経験を共有するよう奨励しています。

2026/02/05 3:34

インフラ向け Claude コード

## Japanese Translation: > Fluid は、AI エージェントが本番インフラストラクチャのサンドボックス化されたクローンを安全に探索し、その後、自動的に実際のサーバー用の Infrastructure‑as‑Code(IaC)―たとえば Ansible プレイブック ― を生成できる軽量ターミナルエージェントです。 > LLM 単体ではライブシステムの挙動を予測することが難しいため、サンドボックスは実際的なコンテキストを提供します。コマンドはホストと同一 OS、パッケージ、ツールを鏡映した隔離された VM またはクラスター上で実行されます。 > Fluid には安全性が組み込まれています:本番環境への直接 SSH は許可せず、一時的な証明書のみを使用し、すべてのサンドボックスコマンドは監査可能に完全ログ記録され、高リソースまたはインターネット依存の操作は人間の承認が必要です。 > インストールはワンライナー(`curl -fsSL https://fluid.sh/install.sh | bash`)で、ホスト環境を自動的に検出します。 > 提供された例では、AI エージェントがサンドボックス(ID `SBX-demo1234`、IP `192.168.122.50`)に Apache をインストールし、curl で確認した後、`httpd‑setup` プレイブックを生成します。このプレイブックは 4 件のタスク(apt キャッシュ更新、Apache インストール、カスタム `index.html` 作成、サービス起動/有効化)から構成され、任意の Ubuntu サーバーで実行して同じ設定を再現できます。 > コントロールされた監査可能なワークフローをチームに提供することで、Fluid はデプロイリスクを低減し、コンプライアンスを向上させ、AI 主導のインフラ変更を効率化します。