Skip to main content
Glama

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

Related MCP server: MCPunk

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

Latest Blog Posts

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