Binary Ninja MCP

by fosdickio
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

バイナリ忍者MCP

このリポジトリには、Binary Ninja プラグイン、MCP サーバー、およびお気に入りの LLM クライアントと Binary Ninja の機能をシームレスに統合できるブリッジが含まれています。

特徴

  • Binary NinjaとMCPクライアント間のシームレスでリアルタイムな統合
  • AI支援によるリバースエンジニアリングワークフローの強化
  • MCPクライアントとしてClaude Desktopを主にサポートしていますが、他の統合にも拡張可能です。

バイナリ分析レポートの生成

関数名の変更

コンポーネント

このリポジトリには 2 つの個別のコンポーネントが含まれています。

  1. Binary Ninjaの機能をHTTPエンドポイント経由で公開するMCPサーバーを提供するBinary Ninjaプラグイン。MCPプロトコルを実装するあらゆるクライアントで使用できます。
  2. お気に入りのMCPクライアントをBinary Ninja MCPサーバーに接続する、独立したMCPブリッジコンポーネントです。Claude Desktopが主な統合パスですが、MCPサーバーは他のクライアントでも使用できます。

サポートされている統合

次の表は、現在サポートされている Binary Ninja との統合の詳細を示しています。

関数説明
get_binary_statusロードされたバイナリの現在のステータスを取得します。
list_classesプログラム内のすべての名前空間/クラス名を一覧表示します。
list_data_items定義されたデータ ラベルとその値を一覧表示します。
list_exportsエクスポートされた関数/シンボルを一覧表示します。
list_importsプログラムにインポートされたシンボルを一覧表示します。
list_methodsプログラム内のすべての関数名を一覧表示します。
list_namespacesプログラム内のすべての非グローバル名前空間を一覧表示します。
list_segmentsプログラム内のすべてのメモリ セグメントを一覧表示します。
rename_data指定されたアドレスのデータ ラベルの名前を変更します。
rename_function関数の現在の名前を新しいユーザー定義の名前に変更します。
search_functions_by_name名前に指定された部分文字列が含まれる関数を検索します。
decompile_function特定の関数を名前で逆コンパイルし、逆コンパイルされた C コードを返します。
set_comment特定のアドレスにコメントを設定します。
set_function_comment関数のコメントを設定します。
get_comment特定のアドレスでコメントを取得します。
get_function_comment関数のコメントを取得します。
delete_comment特定のアドレスのコメントを削除します。
delete_function_comment関数のコメントを削除します。

前提条件

インストール

バイナリ忍者プラグイン

プラグインは、Binary Ninja のプラグイン マネージャー ( Plugins > Manage Plugins ) からインストールできます。

プラグインを手動で構成するには、このリポジトリを Binary Ninja プラグイン フォルダーにコピーします。

クロード デスクトップ ブリッジ (オプション)

これは、Claude DesktopをMCPクライアントとして使用する場合にのみ必要です。まず、仮想環境が設定されていることを確認してください。

git clone git@github.com:fosdickio/binary_ninja_mcp.git cd binary_ninja_mcp python3 -m venv .venv source .venv/bin/activate # On macOS/Linux pip install -r bridge/requirements.txt

自動構成(Mac)

Mac では、次のコマンドを実行してセットアップを自動化できます。

./scripts/setup_claude_desktop.py

手動設定

他のオペレーティング システムの場合、または Claude Desktop 統合を手動で構成する場合:

  1. Settings > Developer > Edit Configに移動します
  2. 次の構成を追加します。
{ "mcpServers": { "binary_ninja_mcp": { "command": "/ABSOLUTE/PATH/TO/binary_ninja_mcp/.venv/bin/python", "args": [ "/ABSOLUTE/PATH/TO/binary_ninja_mcp/bridge/binja_mcp_bridge.py" ] } } }

注: /ABSOLUTE/PATH/TOプロジェクトディレクトリへの実際の絶対パスに置き換えてください。インストールされた依存関係にアクセスするには、仮想環境の Python インタープリターを使用する必要があります。

使用法

クロードデスクトップ

  1. Binary Ninjaを開き、 Binary Ninja MCPプラグインをインストールします。
  2. Binary Ninjaを再起動してバイナリファイルを開きます
  3. MCP サーバーを起動します ( Plugins > MCP Server > Start MCP Server )
  4. Claudeデスクトップを起動

Claude Desktop を開くと、統合が自動的に利用可能になります。

現在開いているバイナリについてClaudeに確認メッセージを送ることができます。プロンプトの例:

  • 「現在のバイナリのバイナリ分析レポートを生成します。」
  • 「現在のバイナリで関数 X の名前を Y に変更します。」
  • 「現在のバイナリ内のすべての関数を一覧表示します。」
  • 「ロードされたバイナリのステータスはどうですか?」

その他のMCPクライアント統合

適切な統合レイヤーを実装することにより、ブリッジを他の MCP クライアントと共に使用できます。

発達

プロジェクト構造は次のように構成されます。

binary_ninja_mcp/ ├── bridge/ # MCP client integration ├── plugin/ # Binary Ninja plugin ├── scripts/ │ └── setup_claude_desktop.py # Setup script for Claude Desktop

貢献

貢献を歓迎します。お気軽にプルリクエストを送信してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Binary Ninja のリバース エンジニアリング機能と LLM アシスタンスのシームレスな統合を可能にするサーバー。これにより、Claude などの AI ツールがバイナリ分析機能とリアルタイムで対話できるようになります。

  1. Features
    1. Examples
      1. Generating a Binary Analysis Report
      2. Renaming Functions
    2. Components
      1. Supported Integrations
        1. Prerequisites
          1. Installation
            1. Binary Ninja Plugin
            2. Claude Desktop Bridge (Optional)
          2. Usage
            1. Claude Desktop
            2. Other MCP Client Integrations
          3. Development
            1. Contributing
              ID: 2ezqrix216