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
Umbenennen von Funktionen
Komponenten
Dieses Repository enthält zwei separate Komponenten:
- 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.
- 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
- Binärer Ninja
- Python 3.12+
- Claude Desktop (oder Ihre bevorzugte Integration)
Installation
Binary Ninja Plugin
Sie können das Plugin über den Plugin-Manager von Binary Ninja ( Plugins > Manage Plugins
) installieren.
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:
Automatisierte Konfiguration (Mac)
Auf einem Mac können Sie die Einrichtung automatisieren, indem Sie Folgendes ausführen:
Manuelle Konfiguration
Auf anderen Betriebssystemen oder um die Claude Desktop-Integration manuell zu konfigurieren:
- Navigieren Sie zu
Settings > Developer > Edit Config
- Fügen Sie die folgende Konfiguration hinzu:
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
- Öffnen Sie Binary Ninja und installieren Sie das
Binary Ninja MCP
Plugin - Starten Sie Binary Ninja neu und öffnen Sie dann eine Binärdatei
- Starten Sie den MCP-Server (
Plugins > MCP Server > Start MCP Server
) - Starten Sie Claude Desktop
Die Integration ist automatisch verfügbar, nachdem Sie Claude Desktop geöffnet haben.
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:
Beitragen
Beiträge sind willkommen. Senden Sie gerne einen Pull Request.
This server cannot be installed
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.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with IDA Pro for reverse engineering and binary analysis tasks.Last updated -814PythonMIT License
- -securityFlicense-qualityA 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 -3Python
- AsecurityAlicenseAqualityAn MCP server that enables Cline to analyze binaries using Binary Ninja with a Personal License through a bridge implementation.Last updated -44PythonGPL 3.0
- -securityAlicense-qualityA 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 -PythonMIT License