Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ghidra — Ghidra ist ein Software-Reverse-Engineering (SRE)-Framework. | Kitploit
Tools/GitHubGitHub/nationalsecurityagency/ghidra
Statische AnalyseDynamische Analyse (Sandboxing)Exploit-FrameworksSchwachstellenanalyseReverse EngineeringScripting & AutomatisierungDebuggerMalware-AnalyseBinäranalyseLernen & BildungFirmware-Analyse
71.1k7.8k1vor 4 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
nationalsecurityagency/ghidra

ghidra

Ghidra ist ein Software-Reverse-Engineering (SRE)-Framework.

Repository anzeigenWebseite

Dockerisiertes Ghidra

Erstellen

Führen Sie den folgenden Befehl aus dem Stammverzeichnis Ihrer Ghidra-Version aus.

root@kitploit:~
./docker/build-docker-image.sh

Dies erstellt das Ghidra-Docker-Image mit einem Tag, der der Release-Version von Ghidra entspricht.

Die MODE-Umgebungsvariable

Der Ghidra-Docker-Container unterstützt die folgenden Ausführungs-MODEs:

  • gui
  • headless
  • ghidra-server
  • bsim
  • bsim-server
  • pyghidra

Die Umgebungsvariable MODE legt fest, welcher Einstiegspunkt von Ghidra ausgeführt werden soll.

Das Skript entrypoint.sh wird beim Start des Containers ausgeführt.

Konfigurieren eines Containers

Die Konfiguration eines Containers erfolgt genauso wie bei jedem anderen Docker-Container. Volumes können eingebunden, Umgebungsvariablen gesetzt und Ports vom Container zum Host gemappt werden, und so weiter. Die Konfigurationsschritte variieren stark je nachdem, mit welchem MODE der Container gestartet wird.

Das Basisverzeichnis für Ghidra im Container befindet sich unter /ghidra. Alle Standardverzeichnisse von Ghidra für Dateien, Konfigurationen usw. sind darin dieselben. Ghidra wird im Container als Benutzer ghidra mit der uid 1001 und guid 1001 ausgeführt.

Der Benutzer ghidra hat nur Berechtigungen für die folgenden Verzeichnisse im Container:

  • /ghidra
  • /home/ghidra

Wenn einem Container mit dem Befehl docker run keine Argumente übergeben werden, wird das entsprechende Kommandozeileninterface (CLI) für den ausgeführten MODE seine Nutzungsinformationen anzeigen.

Lokale Volumes auf einen Container mappen

Volumes im Container können auf Berechtigungsprobleme stoßen, wenn die Volumes für Benutzer mit der Gruppen-ID 1001 nicht zugänglich sind.

Die Standard-uid und -guid für den Container sind 1001:1001. Volumes, die auf den Container gemappt werden, sollten für diese uid/guid zugänglich sein.

Das Hinzufügen des Benutzers der Host-Maschine zur Gruppe 1001 auf dem Host hilft bei der Verwaltung von Volumes, die im Container verwendet werden. Dies kann einfach durch Ausführen von sudo usermod -aG 1001 <benutzer> unter Linux erfolgen.

Beispiel für den Headless-Modus

root@kitploit:~
docker run \
    --env MODE=headless \
    --rm \
    --volume /path/to/myproject:/home/ghidra/myproject \
    --volume /path/to/mybinary:/home/ghidra/mybinary \
    ghidra/ghidra:<version> \
    /home/ghidra/myproject programFolder -import /home/ghidra/mybinary

Aufschlüsselung Zeile für Zeile:

  • docker run startet einen Docker-Container mit dem Image ghidra/ghidra<:<version>
  • --env MODE=headless konfiguriert die Umgebungsvariable MODE im Container auf den Wert headless
  • --rm entfernt den Container nach Abschluss des Befehls
  • --volume /path/to/myproject:/home/ghidra/myproject bindet das lokale Volume /path/to/myproject auf dem Host nach /home/ghidra/myproject im Container ein
  • --volume /path/to/mybinary:/home/ghidra/mybinary bindet das lokale Volume /path/to/mybinary auf dem Host nach /home/ghidra/mybinary im Container ein
  • ghidra/ghidra:<version> ist die vollständige Referenz für das Docker-Image, wobei die Gruppe und der Name des Images ist und der Tag.

Werden keine Argumente übergeben, wird die Nutzung des Headless-Analyzers angezeigt.

/path/to/myproject auf dem Host muss für die guid 1001 mit rwx-Berechtigungen zugänglich sein.

Beispiel für den GUI-Modus

Die Ausführung der grafischen Benutzeroberfläche (GUI) von Ghidra im Docker-Container ist keine empfohlene Methode zum Ausführen von Ghidra. GUIs sind kein typischer Anwendungsfall für dockerisierte Anwendungen.

root@kitploit:~
docker run \
    --env MODE=gui \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume "$HOME/.Xauthority:/home/ghidra/.Xauthority" \
    ghidra/ghidra:<version>

In diesem Modus verlässt sich der Container auf X11-Weiterleitung, um die GUI anzuzeigen. Die Konfiguration von X11 kann variieren, aber in diesem Fall wird die Xauthority-Datei des Hosts in den Container eingebunden, der Container ist so konfiguriert, dass er das Netzwerk des Hosts verwendet, und die DISPLAY Umgebungsvariable wird an den Container übergeben. Dies ermöglicht die Weiterleitung der GUI zurück zum Bildschirm des Host-Rechners. Volumes, die Binärdateien enthalten, sowie Volumes für Ghidra-Projekte müssten weiterhin in den Container eingebunden werden.

Die .Xauthority-Datei des Hosts muss über entsprechende Berechtigungen verfügen – der Gruppe :1001 mit rw-Gruppenberechtigungen zugewiesen.

Beispiel für den Ghidra-Server-Modus

root@kitploit:~
docker run \
    --env MODE=ghidra-server \
    --rm \
    -it \
    --volume /path/to/my/repositories:/ghidra/repositories \
    --volume /path/to/my/configs/server.conf:/ghidra/server/server.conf \
    -p 13100:13100 \
    -p 13101:13101 \
    -p 13102:13102 \
    ghidra/ghidra:<version>

Volumes müssten in den Server-Container eingebunden werden, um die Repositories und Benutzer zu speichern und auch den Server zu konfigurieren.

Um svrAdmin zu nutzen, führen Sie exec im laufenden Ghidra-Server-Container aus (docker exec -it <container-id> bash), um eine Bash-Shell im Container zu erhalten. Nach dem Ausführen von exec im Container ist die Verwaltung und Administration des Ghidra-Servers dieselbe wie außerhalb einer containerisierten Umgebung.

Um den Container zu stoppen, führen Sie den Befehl docker stop <container-id> aus.

HINWEIS: Die Ports, die Sie vom Host auf den Docker-Container mappen, müssen übereinstimmen. Sie können den standardmäßigen Basis-Server-Port (z. B. 13100) in der Datei server.conf mit der Option -p<port> ändern.

Beispiel für den BSIM-Server-Modus

root@kitploit:~
docker run \
    --env MODE=bsim-server \
    --rm \
    -it \
    --volume /path/to/my/datadir:/ghidra/bsim_datadir \
    -p 5432:5432 \
    ghidra/ghidra:<version> \
    /ghidra/bsim_datadir

/ghidra/bsim_datadir ist das Verzeichnis, das zum Speichern der bsim-Daten im Container verwendet wird. Andere Verzeichnisse könnten im Container verwendet werden, aber stellen Sie sicher, dass der Ordner auf dem Host-Rechner über entsprechende Berechtigungen verfügt, die der Gruppe :1001 zugewiesen sind.

Dieses Beispiel startet einfach einen bsim-Server. Die Konfiguration des bsim-Servers und das Befüllen mit Daten könnten nach dem Start innerhalb des Containers auf ähnliche Weise erfolgen, wie die Ghidra-Server-Administration durchgeführt wird. Ein Administrator müsste exec im laufenden bsim-Server-Container ausführen (docker exec -it <container-id> bash), und nach dem Ausführen von exec im Container ist die Verwaltung und Administration des Bsim-Servers dieselbe wie außerhalb einer containerisierten Umgebung.

Um den Container zu stoppen, führen Sie den Befehl docker stop <container-id> aus.

Beispiel für den BSIM-CLI-Modus

root@kitploit:~
docker run \
		--env MODE=bsim \
		--rm \
		 -it \
		 ghidra/ghidra:<version> \
		 generatesigs ghidra://ghidrasvr/demo /home/ghidra \
			 --bsim postgresql://bsimsvr/demo \
			 --commit --overwrite \
			 --user ghidra

In diesem Beispiel wird das bsim-CLI verwendet, um eine Verbindung zu einem Ghidra-Server herzustellen, der auf ghidrasvr gehostet wird, Signaturen für das Repository demo auf diesem Ghidra-Server zu generieren und sie unter /home/ghidra zu speichern, und die Signaturen dann an den BSIM-Server zu übermitteln, der auf bsimsvr in der Datenbank demo gehostet wird.

Beispiel für den Pyghidra-GUI-Modus

Die Ausführung der grafischen Benutzeroberfläche (GUI) von Ghidra im Docker-Container ist keine empfohlene Methode zum Ausführen von Ghidra. GUIs sind kein typischer Anwendungsfall für dockerisierte Anwendungen.

root@kitploit:~
docker run \
    --env MODE=pyghidra \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume="$HOME/.Xauthority:/home/ghidra/.Xauthority:rw" \
    ghidra/ghidra:<version> -c

In diesem Modus verlässt sich der Container auf X11-Weiterleitung, um die GUI anzuzeigen. Die Konfiguration von X11 kann variieren, aber in diesem Fall wird die Xauthority-Datei des Hosts in den Container eingebunden, der Container ist so konfiguriert, dass er das Netzwerk des Hosts verwendet, und die DISPLAY Umgebungsvariable wird an den Container übergeben. Dies ermöglicht die Weiterleitung der GUI zurück zum Bildschirm des Host-Rechners. Volumes, die Binärdateien enthalten, sowie Volumes für Ghidra-Projekte müssten weiterhin in den Container eingebunden werden.

Die .Xauthority-Datei des Hosts muss über entsprechende Berechtigungen verfügen – im Besitz von :1001 mit rw-Gruppenberechtigungen.

Beispiel für den Pyghidra-Headless-Modus

root@kitploit:~
docker run \
    --env MODE=pyghidra \
    --rm \
    --volume /path/to/myproject:/myproject \
    --volume /path/to/mybinary:/mybinary \
    ghidra/ghidra:<version> -H \
    /myproject programFolder -import /mybinary

Wenn dem pyghidra-Headless-Analyzer keine Argumente übergeben werden, wird das Hilfemenü angezeigt, genau wie beim Headless-Analyzer.

Dieser Anwendungsfall ist dem Beispiel des Headless-Modus sehr ähnlich, mit dem zusätzlichen Vorteil, Python3 für Ghidra-Skripte nutzen zu können.

Auch in diesem Beispiel sind entsprechende Berechtigungen und die Gruppenzuweisung für /path/to/myproject und /path/to/mybinary erforderlich, um Berechtigungsprobleme zu vermeiden.

Tool herunterladen
ghidra/ghidra
<version>
  • /home/ghidra/myproject programFolder -import /home/ghidra/mybinary sind Argumente, die an die Kommandozeile des Headless-Analyzers von Ghidra übergeben werden