Skip to main content
Glama

Binary Ninja MCP

by fosdickio

Binärer Ninja MCP

Dieses Repository enthält ein Binary Ninja-Plugin, einen MCP-Server und eine Bridge, die eine nahtlose Integration der Funktionen von Binary Ninja in Ihren bevorzugten LLM-Client ermöglicht.

Merkmale

  • Nahtlose Echtzeitintegration zwischen Binary Ninja und MCP-Clients

  • Verbesserter Reverse-Engineering-Workflow mit KI-Unterstützung

  • Primäre Unterstützung für Claude Desktop als MCP-Client, aber erweiterbar für andere Integrationen

Beispiele

Generieren eines Binäranalyseberichts

Generierung eines Binäranalyseberichts

Umbenennen von Funktionen

Demo zur Umbenennungsfunktion

Komponenten

Dieses Repository enthält zwei separate Komponenten:

  1. Ein Binary Ninja-Plugin, das einen MCP-Server bereitstellt, der die Funktionen von Binary Ninja über HTTP-Endpunkte bereitstellt. Dies kann mit jedem Client verwendet werden, der das MCP-Protokoll implementiert.

  2. Eine separate MCP-Bridge-Komponente, die Ihren bevorzugten MCP-Client mit dem Binary Ninja MCP-Server verbindet. Während Claude Desktop der primäre Integrationspfad ist, kann der MCP-Server auch mit anderen Clients verwendet werden.

Unterstützte Integrationen

In der folgenden Tabelle ist aufgeführt, welche Integrationen mit Binary Ninja derzeit unterstützt werden.

Funktion

Beschreibung

get_binary_status

Rufen Sie den aktuellen Status der geladenen Binärdatei ab.

list_classes

Listet alle Namespace-/Klassennamen im Programm auf.

list_data_items

Listen Sie definierte Datenbeschriftungen und ihre Werte auf.

list_exports

Listet exportierte Funktionen/Symbole auf.

list_imports

Listet importierte Symbole im Programm auf.

list_methods

Listen Sie alle Funktionsnamen im Programm auf.

list_namespaces

Listet alle nicht globalen Namespaces im Programm auf.

list_segments

Listet alle Speichersegmente im Programm auf.

rename_data

Benennen Sie ein Datenlabel an der angegebenen Adresse um.

rename_function

Benennen Sie eine Funktion von ihrem aktuellen Namen in einen neuen benutzerdefinierten Namen um.

search_functions_by_name

Suche nach Funktionen, deren Name die angegebene Teilzeichenfolge enthält.

decompile_function

Dekompilieren Sie eine bestimmte Funktion nach Namen und geben Sie den dekompilierten C-Code zurück.

set_comment

Setzen Sie einen Kommentar an eine bestimmte Adresse.

set_function_comment

Legen Sie einen Kommentar für eine Funktion fest.

get_comment

Erhalten Sie den Kommentar an einer bestimmten Adresse.

get_function_comment

Holen Sie sich den Kommentar für eine Funktion.

delete_comment

Löschen Sie den Kommentar an einer bestimmten Adresse.

delete_function_comment

Löschen Sie den Kommentar für eine Funktion.

get_assembly_function

Rufen Sie die Assemblydarstellung einer Funktion nach Name oder Adresse ab.

function_at

Rufen Sie den Namen der Funktion ab, zu der die Adresse gehört.

code_references

Ruft Namen und Adressen von Funktionen ab, die die angegebene Funktion aufrufen.

get_user_defined_type

Rufen Sie die Definition eines benutzerdefinierten Typs (Struktur, Aufzählung, Typdefinition, Vereinigung) ab.

rename_variable

Variable innerhalb einer gegebenen Funktion umbenennen.

retype_variable

Geben Sie die Variable innerhalb einer gegebenen Funktion neu ein.

define_types

Fügen Sie Typdefinitionen aus einer C-String-Typdefinition hinzu.

edit_function_signature

Bearbeiten Sie die Signatur einer bestimmten Funktion, angegeben als Typzeichenfolge.

Voraussetzungen

Installation

Binary Ninja Plugin

Sie können das Plugin über den Plugin-Manager von Binary Ninja ( Plugins > Manage Plugins ) installieren.

Plugin-Manager-Auflistung

Um das Plugin manuell zu konfigurieren, kann dieses Repository in den Plugin-Ordner von Binary Ninja kopiert werden.

Claude Desktop Bridge (optional)

Dies ist nur erforderlich, wenn Sie Claude Desktop als MCP-Client verwenden möchten. Stellen Sie sicher, dass Sie zuerst Ihre virtuelle Umgebung konfiguriert haben:

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

Automatisierte Konfiguration (Mac)

Auf einem Mac können Sie die Einrichtung automatisieren, indem Sie Folgendes ausführen:

./scripts/setup_claude_desktop.py

Manuelle Konfiguration

Auf anderen Betriebssystemen oder um die Claude Desktop-Integration manuell zu konfigurieren:

  1. Navigieren Sie zu Settings > Developer > Edit Config

  2. Fügen Sie die folgende Konfiguration hinzu:

{ "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" ] } } }

Hinweis: Ersetzen Sie /ABSOLUTE/PATH/TO durch den tatsächlichen absoluten Pfad zu Ihrem Projektverzeichnis. Für den Zugriff auf die installierten Abhängigkeiten muss der Python-Interpreter der virtuellen Umgebung verwendet werden.

Verwendung

Claude Desktop

  1. Öffnen Sie Binary Ninja und installieren Sie das Binary Ninja MCP Plugin

  2. Starten Sie Binary Ninja neu und öffnen Sie dann eine Binärdatei

  3. Starten Sie den MCP-Server ( Plugins > MCP Server > Start MCP Server )

  4. Starten Sie Claude Desktop

Die Integration ist automatisch verfügbar, nachdem Sie Claude Desktop geöffnet haben.

Claude Integration

Sie können Claude nun nach der aktuell geöffneten Binärdatei fragen. Beispiel-Eingabeaufforderungen:

  • "Erstellen Sie einen Binäranalysebericht für die aktuelle Binärdatei."

  • "Benennen Sie die Funktion X in der aktuellen Binärdatei in Y um."

  • "Listet alle Funktionen in der aktuellen Binärdatei auf."

  • „Wie ist der Status der geladenen Binärdatei?“

Andere MCP-Client-Integrationen

Die Bridge kann mit anderen MCP-Clients verwendet werden, indem die entsprechende Integrationsschicht implementiert wird.

Entwicklung

Die Projektstruktur ist wie folgt organisiert:

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

Beitragen

Beiträge sind willkommen. Senden Sie gerne einen Pull Request.

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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Ein Server, der eine nahtlose Integration der Reverse-Engineering-Funktionen von Binary Ninja mit LLM-Unterstützung ermöglicht, sodass KI-Tools wie Claude in Echtzeit mit Funktionen zur Binäranalyse interagieren können.

  1. Merkmale
    1. Beispiele
      1. Generieren eines Binäranalyseberichts
      2. Umbenennen von Funktionen
    2. Komponenten
      1. Unterstützte Integrationen
        1. Voraussetzungen
          1. Installation
            1. Binary Ninja Plugin
            2. Claude Desktop Bridge (optional)
          2. Verwendung
            1. Claude Desktop
            2. Andere MCP-Client-Integrationen
          3. Entwicklung
            1. Beitragen

              Related MCP Servers

              • A
                security
                F
                license
                A
                quality
                The server facilitates natural language interactions for exploring and understanding codebases, providing insights into data models and system architecture using a cost-effective, simple setup with support for existing Claude Pro subscriptions.
                Last updated -
                4
                20
                • Apple
              • A
                security
                A
                license
                A
                quality
                Chat with your codebase through intelligent code searching without embeddings by breaking files into logical chunks, giving the LLM tools to search these chunks, and letting it find specific code needed to answer your questions.
                Last updated -
                8
                55
                MIT License
              • -
                security
                A
                license
                -
                quality
                A Model Context Protocol server that enables Large Language Models to interact with Binary Ninja for reverse engineering tasks like viewing assembly code, decompiled code, renaming functions, and adding comments.
                Last updated -
                2
                MIT License
                • Linux
                • Apple
              • A
                security
                A
                license
                A
                quality
                A multi-language code analysis server that helps LLMs or humans automatically lint, type-check, and improve code with minimal installation friction, currently supporting Python with plans for other languages.
                Last updated -
                1
                3
                MIT License

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/fosdickio/binary_ninja_mcp'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server