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.

FunktionBeschreibung
get_binary_statusRufen Sie den aktuellen Status der geladenen Binärdatei ab.
list_classesListet alle Namespace-/Klassennamen im Programm auf.
list_data_itemsListen Sie definierte Datenbeschriftungen und ihre Werte auf.
list_exportsListet exportierte Funktionen/Symbole auf.
list_importsListet importierte Symbole im Programm auf.
list_methodsListen Sie alle Funktionsnamen im Programm auf.
list_namespacesListet alle nicht globalen Namespaces im Programm auf.
list_segmentsListet alle Speichersegmente im Programm auf.
rename_dataBenennen Sie ein Datenlabel an der angegebenen Adresse um.
rename_functionBenennen Sie eine Funktion von ihrem aktuellen Namen in einen neuen benutzerdefinierten Namen um.
search_functions_by_nameSuche nach Funktionen, deren Name die angegebene Teilzeichenfolge enthält.
decompile_functionDekompilieren Sie eine bestimmte Funktion nach Namen und geben Sie den dekompilierten C-Code zurück.
set_commentSetzen Sie einen Kommentar an eine bestimmte Adresse.
set_function_commentLegen Sie einen Kommentar für eine Funktion fest.
get_commentErhalten Sie den Kommentar an einer bestimmten Adresse.
get_function_commentHolen Sie sich den Kommentar für eine Funktion.
delete_commentLöschen Sie den Kommentar an einer bestimmten Adresse.
delete_function_commentLöschen Sie den Kommentar für eine Funktion.
get_assembly_functionRufen Sie die Assemblydarstellung einer Funktion nach Name oder Adresse ab.
function_atRufen Sie den Namen der Funktion ab, zu der die Adresse gehört.
code_referencesRuft Namen und Adressen von Funktionen ab, die die angegebene Funktion aufrufen.
get_user_defined_typeRufen Sie die Definition eines benutzerdefinierten Typs (Struktur, Aufzählung, Typdefinition, Vereinigung) ab.
rename_variableVariable innerhalb einer gegebenen Funktion umbenennen.
retype_variableGeben Sie die Variable innerhalb einer gegebenen Funktion neu ein.
define_typesFügen Sie Typdefinitionen aus einer C-String-Typdefinition hinzu.
edit_function_signatureBearbeiten 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
                A
                license
                A
                quality
                A Model Context Protocol server that enables AI assistants to interact with IDA Pro for reverse engineering and binary analysis tasks.
                Last updated -
                8
                14
                Python
                MIT License
                • Linux
                • Apple
              • -
                security
                F
                license
                -
                quality
                A server that provides remote binary analysis capabilities through IDA Pro's headless mode, allowing users to manage and manipulate functions, variables, and other binary elements via the Multi-Client Protocol.
                Last updated -
                3
                Python
              • A
                security
                A
                license
                A
                quality
                An MCP server that enables Cline to analyze binaries using Binary Ninja with a Personal License through a bridge implementation.
                Last updated -
                4
                4
                Python
                GPL 3.0
              • -
                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 -
                Python
                MIT License
                • Linux
                • Apple

              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