1 Punkte von GN⁺ 2026-02-06 | 1 Kommentare | Auf WhatsApp teilen
  • Ghidra MCP Server ist ein Model Context Protocol (MCP)-Server, der die Reverse-Engineering-Funktionen von Ghidra mit KI- und Automatisierungs-Frameworks verbindet
  • Bietet über 110 MCP-Tools und 132 Endpunkte umfassende Binäranalysefunktionen wie Funktionsanalyse, Erkundung von Datenstrukturen und String-Extraktion
  • Unterstützt Batch-Verarbeitung, atomare Transaktionen und Echtzeitanalyse und kann per Docker-Deployment und im Headless-Modus betrieben werden
  • Die Funktion Cross-binary-Dokumentübertragung gleicht die Funktionsdokumentation zwischen verschiedenen Binärversionen automatisch ab
  • Eine Plattform, mit der sich KI-basierte Reverse-Engineering-Workflows mit Stabilität auf Produktionsniveau umsetzen lassen

Überblick

  • Ghidra MCP Server ist ein MCP-Server für den Produktionseinsatz, der Ghidras Analyse-Engine mit KI-Tools und Automatisierungssystemen verbindet
    • Implementiert das Model Context Protocol vollständig und unterstützt die Interaktion mit KI-Modellen
    • Stellt Ghidras Funktionen über HTTP REST und das MCP-Protokoll (stdio/SSE) bereit

Hauptfunktionen

  • Core-MCP-Integration
    • Vollständig MCP-kompatibel, bietet 110 MCP-Tools und unterstützt Batch-Operationen sowie atomare Transaktionen
    • Echtzeitintegration mit Ghidras Analyse-Engine
  • Binäranalyse
    • Funktionsdekompilierung, Call-Graphen, Querverweise, automatische Erzeugung von Datenstrukturen
    • Enthält String-Extraktion, Analyse von Symboltabellen, Memory-Mapping und die Funktion Cross-binary-Dokumentübertragung
  • Entwicklung und Automatisierung
    • Automatisierte Pipeline für Build, Test, Deployment und Verifikation
    • Erstellung, Ausführung und Verwaltung von Ghidra-Skripten, Vergleich mehrerer Programme sowie Massenumbenennung und Kommentierung

Installation und Ausführung

  • Voraussetzungen: Java 21 LTS, Apache Maven 3.9+, Ghidra 12.0.2, Python 3.8+
  • Installationsablauf
    • Repository klonen und Python-Abhängigkeiten installieren
    • 14 Ghidra-Bibliotheken kopieren und mit Maven bauen
    • Plugin in den Ghidra-Erweiterungsordner deployen
  • Ausführungsarten
    • Wahl zwischen stdio-Transport (Standard, für KI-Tools) und SSE-Transport (für Web-/HTTP-Clients)
    • In Ghidra Tools > GhidraMCP > Start MCP Server ausführen

Leistung und Stabilität

  • Vollständige Implementierung von 110 MCP-Tools, bei den meisten Operationen Antwortzeiten unter 1 Sekunde
  • Batch-Operationsstruktur mit 93 % weniger API-Aufrufen
  • Alle Operationen werden als atomare Transaktionen verarbeitet, um Zuverlässigkeit sicherzustellen
  • Versionsbewusste automatische Deployment-Skripte werden bereitgestellt

API-Struktur

  • Kernoperationen: Verbindungsprüfung, Metadatenabfrage, Versionsinformationen, Erkundung von Entry Points
  • Funktionsanalyse: Funktionsliste, Namenssuche, Dekompilierung, Graphen von Aufrufbeziehungen, Bewertung der Dokumentationsvollständigkeit
  • Speicher und Daten: Segmentlisten, Disassembly, Querverweise, Prüfung von Speicherinhalten
  • Cross-binary-Dokumentation: Generierung von Funktions-Hashes, Export/Anwendung von Dokumentation, hashbasiertes Matching
  • Verwaltung von Datentypen: Erstellen von Strukturen und Enums, Ändern von Feldern, Zusammenführen doppelter Typen
  • Verwaltung von Symbolen und Labels: Import-/Export-Listen, String-Analyse, Verwaltung von Namespaces und globalen Variablen
  • Umbenennung und Kommentierung: Umbenennung von Funktionen, Daten und Variablen, Setzen von Kommentaren in großem Umfang
  • Typsystem: Festlegen von Funktionsprototypen, Setzen von Variablentypen, Abfrage von Calling Conventions
  • Verwaltung von Ghidra-Skripten: Skriptlisten, Ausführung, Speichern, Ändern, Löschen
  • Unterstützung mehrerer Programme: Wechsel zwischen geöffneten Programmen, Projektdateiliste, Dokumentvergleich
  • Analysewerkzeuge: Suche nach undefinierten Funktionen, stringbasierte Suche, Suche nach Byte-Mustern

Architektur

  • Struktur KI-/Automatisierungstools ↔ MCP-Bridge ↔ Ghidra-Plugin
    • bridge_mcp_ghidra.py: Python-Server, der das MCP-Protokoll in HTTP-Aufrufe umwandelt
    • GhidraMCP.jar: Java-Plugin, das Ghidra-Funktionen per HTTP bereitstellt
    • ghidra_scripts/: enthält mehr als 70 Automatisierungsskripte

Entwicklung und Build

  • Maven-basierter Build und PowerShell-Deployment-Skripte werden bereitgestellt
  • Die Projektstruktur besteht aus Python-Server, Java-Plugin, Ghidra-Bibliotheken, Dokumentation, Beispielen und Build-Skripten
  • 14 erforderliche Bibliotheken (ca. 37 MB) müssen aus dem Ghidra-Installationspfad kopiert werden
  • Enthält automatische Deployments, Batch-Operationen, atomare Transaktionen und detailliertes Logging

Dokumentation und KI-Workflows

  • Der Ordner docs/ enthält die vollständige Dokumentation, Projektstruktur, Namenskonventionen und ungarische Notation
  • KI-Workflow-Prompts: Prompts für Funktionsdokumentation, versionsübergreifendes Matching und Schnellstart
  • Release-Historie: Detaillierte versionsbezogene Änderungen in CHANGELOG.md und docs/releases

Lizenz und Status

  • Veröffentlicht unter der Apache License 2.0
  • Version 2.0.0, vollständige Implementierung von 110 MCP-Tools, enthält mehr als 70 Ghidra-Skripte
  • Bereit für Deployment in Produktionsumgebungen, geeignet für KI-basiertes Reverse Engineering

Verwandte Projekte

  • re-universe: PostgreSQL-basierte Plattform für großskalige Analyse von Binärähnlichkeiten
  • cheat-engine-server-python: MCP-Server für dynamische Speicheranalyse und Debugging

Danksagung

  • Dank an das Ghidra-Team, die Entwickler des Model Context Protocol und die Mitwirkenden aus der Community

1 Kommentare

 
GN⁺ 2026-02-06
Hacker-News-Kommentare
  • Der Prozess des Reverse Engineerings mehrerer Softwareversionen war so schmerzhaft, dass dieses Projekt entstanden ist
    Der Kern ist ein normalisiertes Function-Hashing-System, das Hashes anhand der logischen Struktur einer Funktion erstellt, also anhand von Instruktionen, Operanden und Kontrollfluss
    Dadurch hat dieselbe Funktion denselben Hash, selbst wenn das Binärfile neu gebaut oder rebasiert wurde, und alle Kommentare, Typen und Namen werden automatisch übernommen
    Es enthält 110 Tools als MCP-Bridge für Ghidra und lässt sich mit Claude, Claude Code oder anderen MCP-Clients integrieren
    Getestet wurde es mit mehreren Patch-Versionen von Diablo II, wobei sich mehr als 1.300 Funktionskommentare automatisch übertragen ließen
    Dank Docker-basiertem Headless-Modus ist auch eine CI-Integration möglich
    In v2.0.0 wurden localhost-only-Binding, Timeout-Einstellungen, Label-Löschung, .env-Konfiguration und mehr ergänzt
    Diskussionen über den Hashing-Ansatz oder das MCP-Design sind willkommen

    • Ich frage mich, worin genau der Unterschied zu Ghidras eingebauter FunctionID oder dem BinDiff-Plugin besteht
    • Ich frage mich, wie es sich im Vergleich zu ReVa schlägt
      Die Installationsanleitung scheint unvollständig zu sein. Nach der Installation in Ghidra und einem Neustart sehe ich GhidraMCP nicht im Menü Tools
    • Ich habe versucht, es selbst zu nutzen, aber Ghidra erkennt das Plugin nicht
      Ich frage mich, ob GH Discussions der richtige Kommunikationskanal ist
    • Ich frage mich, worin die Unterschiede zu anderen Ghidra-MCP-Servern liegen, etwa pyghidra-mcp, ReVa oder GhidrAssistMCP
    • Ich frage mich, ob Decompiling-Unterstützung für Android-Binärdateien vorhanden ist
  • Ich habe LaurieWireds Ghidra-MCP-Server benutzt, und Binäranalyse sowie Keygen-Erstellung waren unglaublich spaßig und einfach
    Diesen MCP-Server werde ich auf jeden Fall ebenfalls ausprobieren

    • Eine Software, die ich vor langer Zeit erstellt hatte, verlangte zur Installation eine Authentifizierung gegen einen Server, der nicht mehr existiert, und ich hatte vergeblich versucht, selbst ein Ghidra MCP zu bauen
      Dass dieses Projekt genau jetzt auftaucht, ist schon bemerkenswert
    • Dieser Branch ist 110 Commits voraus gegenüber main von LaurieWired/GhidraMCP
  • Nachdem ich gesehen hatte, wie ein Kollege mit Claude und Ghidra das Spiel River Ride gehackt hat, habe ich es ebenfalls ausprobiert
    Ich habe ein altes Spiel für PowerPC auf Apple Silicon portiert; ich habe mehrere MCPs getestet, aber Claude Code hat häufig Code halluziniert
    Letztlich habe ich mit Cursor + dem Headless-Modus von GPT 5.2 Codex die besten Ergebnisse erzielt

    • Ich experimentiere ebenfalls mit Reverse Engineering, und GPT-5.2 Codex ist Claude deutlich überlegen
      Zum Beispiel hat es eine 1.300 Zeilen lange C64-SID-Datei in 30 Minuten vollständig rekonstruiert
      Derzeit baue ich ein Multi-Agenten-System, das ein komplettes C64-Spiel reverse engineert
      Siehe Beispielcode
  • Reverse Engineering mit KI wird unterschätzt
    Ich konnte aus einer Android-App erfolgreich einen Kryptoschlüssel extrahieren, wobei der Schlüssel in einem Shader versteckt war und sich nur durch tatsächliches Ausführen des Shaders gewinnen ließ

    • Ich habe Claude zusammen mit einem Freund ein altes Unity-Spiel gegeben, und es hat einen vollständigen TypeScript-Port erzeugt
      Jetzt fügen wir Multiplayer-Funktionen im Browser hinzu
    • Dass der Schlüssel aus einem Shader extrahiert wurde, finde ich spannend. Ich würde gern mehr über die genaue Methode hören
    • Ich habe ebenfalls MCP und mehrere Tools verbunden, um Quellcode aus Binärdateien wiederherzustellen und Schwachstellen zu erkennen, und das Ergebnis entsprach fast exakt dem echten Quellcode
  • Ich nutze seit einigen Monaten LaurieWireds Version mit 15 Tools, und es fühlt sich an, als würde die interne Struktur einer App vollständig transparent sichtbar
    Damit sind Bug-Tracking, Plugin-Entwicklung und App-Modifikationen möglich
    Für Objective-C-Code nutze ich zusätzlich Hopper Disassembler
    Zugehöriges Paper: Full recompilation with LLMs and Ghidra

    • Als GitHub-Mitarbeiter hinterlässt es keinen guten Eindruck bei mir, App-Reverse-Engineering mit OSS gleichzusetzen
  • Reverse Engineering mit LLMs wird wirklich unterschätzt
    Ich arbeite an der Wiederherstellung eines 30 Jahre alten Spiels; wenn man dem Modell Ghidras Decompiler-Ergebnis und Symbolinformationen im RAG-Stil gibt, entstehen erstaunliche Resultate
    Selbst günstige Modelle wie Gemini 3 Flash sind dafür durchaus brauchbar

    • Allerdings erzeugt Gemini oft unvollständigen Pseudocode
      Es lässt Teile von Funktionen aus oder belässt innerhalb von switch-Blöcken nur Kommentare
      Claude Opus oder Qwen3-30B-A3B liefern dagegen deutlich vollständigeren Code
      Das große Kontextfenster von Gemini ist ein Vorteil, aber wegen der Ausführlichkeit von PCode gibt es in der Praxis dennoch viele Einschränkungen
  • Ich dachte, dass zu viele an MCP angeschlossene Tools die Leistung verschlechtern, und das hier wirkt nicht wie ein gutes Design

    • Heutzutage wird das Problem bei MCP-Tools teilweise durch Lazy Loading gelöst
      Trotzdem sind API-Transformations-zentrierte Tools nach wie vor schlechter mit LLMs kompatibel
    • Skill-basierte Tools auf vibecoded-Basis wären vermutlich viel effizienter
  • Ich bin kein Reverse Engineer, habe aber mit Claude Code und Ghidra MCP einen Ransomware-Decryptor verbessert
    Als ich mehrere Terabyte an Daten wiederhergestellt hatte, fühlte es sich wirklich so an, als hätte ich Superkräfte bekommen

    • Dazu bekam ich den Witz zu hören: „Mit dieser Superkraft hättest du doch auch den Verschlüsseler zuverlässiger machen können, oder?“
  • Ich denke, dass KI bei der Binäranalyse übermenschliche Fähigkeiten entwickeln kann
    Im Moment ist das zwar eine produktivitätsarme und langweilige Arbeit, aber mit KI könnte sie auch für Security Audits oder zur Abwehr von Supply-Chain-Angriffen genutzt werden

    • Genau, und außerdem kann KI sich selbst analysieren
      MOOLLMs „skill-snitch“ überwacht das Verhalten anderer Skills, und „cursor-mirror“ schaut vollständig in den internen Zustand von Cursor hinein
      Diese Skills lassen sich gegenseitig kombinieren und rekursiv aufrufen und arbeiten dadurch auf eine weit schnellere „speed of light“-Art als MCP
      Relevante Materialien: Leela MOOLLM Demo Transcript, speed-of-light skill, skill-snitch report
  • Ich frage mich, warum das nicht CLI-basiert gebaut wurde. Heutige LLMs und Agenten scheinen mit CLI besser zurechtzukommen

    • Ich denke, das gilt nur, wenn die CLI in den Trainingsdaten vorkam. Bei einem neuen Tool muss man ohnehin die komplette Dokumentation in den Kontext geben
    • Dieses Projekt begann, bevor MCP zu viel Kontext belegte (LaurieWired/GhidraMCP)
    • Neuere Tools wie Claude Code unterstützen inzwischen tool-search-basiertes Laden, wodurch die Kontextlast von MCP stark reduziert wurde
    • Ich denke ähnlich. Wenn die Beschreibungen von 110 Tools ständig im Kontext landen, erhöht das nur das Rauschen