Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
quokka — Quokka: Ein schneller und präziser Binär-Exporter | Kitploit
Tools/GitHubGitHub/quarkslab/quokka
Statische AnalyseCode-AnalyseReverse EngineeringDienstprogramme & FrameworksBinäranalyse
GitHubquarkslab/quokka

quokka

Quokka: Ein schneller und präziser Binär-Exporter

Repository anzeigen
2232218vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Webseite
Teilen

Quokka

Bild erzeugt von DALL-E


Inhaltsverzeichnis

  • Einführung
  • Installation
  • Verwendung
  • Erstellen
  • Dokumentation
  • FAQ

Einführung

Quokka ist ein Binärdatei-Exporter: Aus der Disassemblierung eines Programms erzeugt er eine Exportdatei, die ohne den Disassembler verwendet werden kann. Derzeit werden IDA Pro, Ghidra und Binary Ninja als Disassemblierungs-Backends unterstützt.

Das Hauptziel von Quokka ist es, die vollständige Manipulation der Binärdatei zu ermöglichen, ohne nach dem anfänglichen Export jemals einen Disassembler zu öffnen. Darüber hinaus abstrahiert es die API des Disassemblers, um den Benutzern eine saubere Schnittstelle zu bieten.

Quokka ist stark von BinExport inspiriert, dem Binär-Exporter, der von BinDiff verwendet wird.

Architektur

     IDA Pro               Ghidra               Binary Ninja
        │                      │                      │
IDA Plugin (C++)    Ghidra Plugin (Java)   BinaryNinja Plugin (Python)
        │                      │                      │
        └────────────── quokka.proto ─────────────────┘
                     (protobuf schema)
                              │
                        .quokka files
                              │
              Python bindings (quokka.Program)
              ├── Capstone backend (primary)
              └── Pypcode backend (optional)

Installation

Python-Plugin

Das Plugin wird in der CI erstellt und ist in der Registry verfügbar.

Es sollte möglich sein, es direkt über PIP mit einem Befehl wie diesem zu installieren:

$ pip install quokka-project

IDA-Plugin

Hinweis: Das IDA-Plugin wird nicht benötigt, um eine mit Quokka erzeugte Datei zu lesen. Es wird nur zur Erzeugung verwendet.

Quokka ist mit IDA 9.1+ kompatibel.

Über den IDA-Plugin-Manager (IDA 9.2+)

Quokka wird im Hex-Rays-Plugin-Repository veröffentlicht und kann mit hcli installiert werden:

user@host:~$ hcli plugin install quokka

Manuell

Das Plugin wird ebenfalls in der CI erstellt und ist im Tab Releases verfügbar.

Laden Sie zum Herunterladen des Plugins die Datei quokka_plugin.so (oder das Archiv quokka-ida<version>.zip für Ihre IDA-Version) herunter und kopieren Sie sie in Ihr IDA-Verzeichnis plugins.

Ghidra-Erweiterung

Quokka unterstützt auch den Export aus Ghidra (>= 12.0.3) über eine eigene Erweiterung. Sie erzeugt dieselben .quokka-Protobuf-Dateien, die die Python-Bibliothek laden kann.

Anweisungen zum Erstellen, zur Installation und zur Verwendung finden Sie in der README der Ghidra-Erweiterung.

BinaryNinja-Erweiterung

Quokka unterstützt auch den Export aus Binary Ninja über ein Python-Plugin. Es erzeugt dieselben .quokka-Protobuf-Dateien, die die Python-Bibliothek laden kann.

Details zur Installation und Verwendung finden Sie in der README der BinaryNinja-Erweiterung.

Verwendung

Export über die GUI

Die erste manuelle Möglichkeit, eine Binärdatei zu exportieren, ist die Verwendung des Plugins in IDA Pro. Die Standard-Tastenkombination in IDA ist Alt+A. Es öffnet sich der folgende Dialog:

Export Dialog

Verfügbare Modi sind:

  • LIGHT: Exportiert nur Blockdaten (Anweisungen werden zur Laufzeit von Capstone aus den ursprünglichen Binärbytes dekodiert)
  • FULL: Exportiert Anweisungen und Operanden (in sich geschlossener Modus, benötigt die ursprüngliche Binärdatei nicht für die Disassemblierung)

Hinweis: Der FULL-Modus ist noch nicht implementiert. Derzeit ist nur der LIGHT-Modus funktionsfähig.

Headless-Export

IDA

Hinweis: Hierfür ist eine funktionierende IDA-Installation erforderlich.

$ idat -OQuokkaAuto:true -OQuokkaDecompiled:true -A /path/to/hello.i64

Alle verfügbaren Optionen sind in der Verwendung beschrieben.

Hinweis: idat wird anstelle von ida verwendet, um die Exportgeschwindigkeit zu erhöhen, da keine grafische Oberfläche benötigt wird.

Ghidra

$ analyzeHeadless /tmp/proj Test \
    -import /path/to/binary \
    -scriptPath ghidra_extension/src/script/ghidra_scripts \
    -postScript QuokkaExportHeadless.java \
    --out=/path/to/output.quokka --mode=LIGHT

Weitere Einzelheiten finden Sie in der README der Ghidra-Erweiterung.

Binary Ninja

Hinweis: Die Headless-Nutzung der Binary Ninja API erfordert eine kommerzielle Lizenz. Ohne eine solche verwenden Sie stattdessen den Exportbefehl in der Binary Ninja-Benutzeroberfläche.

$ python binaryninja_extension/export_headless.py /path/to/binary \
    -o /path/to/output.quokka --mode LIGHT

Weitere Einzelheiten finden Sie in der README der BinaryNinja-Erweiterung.

Export über die CLI

Quokka stellt ein CLI-Dienstprogramm bereit, um eine oder mehrere Dateien und/oder Verzeichnisse (alle ausführbaren Dateien in jedem Verzeichnis) automatisch parallel zu exportieren. Es unterstützt sowohl IDA Pro als auch Ghidra als Backends:

$ quokka-cli --backend ghidra -t 8 dir/
$ quokka-cli --backend ida --ida-path /opt/ida -t 8 dir/
$ quokka-cli -t 8 dir/                          # auto-detect backend
$ quokka-cli -o "%p/exports/%f.quokka" binary   # custom output directory
$ quokka-cli -b ida -o %F_ida.quokka -t 4 dir/  # Using relative path
$ quokka-cli -t 8 dir1/ dir2/ binary1 binary2   # multiple inputs

Standardmäßig wird die .quokka-Datei neben der Eingabebinärdatei abgelegt (z. B. erzeugt /usr/bin/ls die Datei /usr/bin/ls.quokka). Mit -o können Sie dies durch einen direkten Pfad oder eine Vorlage überschreiben, die pro Datei expandiert wird (%f = Stammname, %F = Dateiname, %p = übergeordnetes Verzeichnis, %P = vollständiger Pfad, %e = Erweiterung, %% = literales %).

Führen Sie quokka-cli --help aus, um alle Optionen zu sehen. Die wichtigsten Flags sind:

  • -b, --backend: wählt das Disassembler-Backend (ida, ghidra oder auto)
  • -i, --ida-path: Pfad zum IDA-Installationsverzeichnis (der Ordner, der idat enthält)
  • --ghidra-path: Pfad zum Ghidra-Installationsverzeichnis (überschreibt GHIDRA_INSTALL_DIR)
  • -o, --output: legt den Ausgabepfad oder die Vorlage fest (Standard: %F.quokka)
  • -m, --mode: wählt den Exportmodus (light oder full)
  • --decompiled: aktiviert den Export dekompilierten Codes (nur IDA)
  • -v, --verbose: aktiviert ausführliche Protokollierung

Laden einer Exportdatei

import quokka
from quokka.types import Disassembler

# Directly from the binary (auto-detects available backend)
prog = quokka.Program.from_binary("/bin/ls")

# Explicitly choose a backend
prog = quokka.Program.from_binary("/bin/ls", disassembler=Disassembler.GHIDRA)
prog = quokka.Program.from_binary("/bin/ls", disassembler=Disassembler.IDA)

# From the exported file
prog = quokka.Program("ls.quokka",  # the exported file
                      "/bin/ls")    # the original binary
Tool herunterladen