Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
quokka — Quokka: un esportatore binario veloce e accurato | Kitploit
Strumenti/GitHubGitHub/quarkslab/quokka
Analisi StaticaAnalisi del CodiceReverse EngineeringUtilità e FrameworkAnalisi di Binari
GitHubquarkslab/quokka

quokka

Quokka: un esportatore binario veloce e accurato

Vedi Repository
22322181 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Sito web
Condividi

Quokka

immagine generata da DALL-E


Sommario

  • Introduction
  • Installation
  • Usage
  • Building
  • Documentation
  • FAQ

Introduzione

Quokka è un esportatore di binari: dal disassembly di un programma genera un file di export che può essere utilizzato senza il disassembler. Attualmente supporta IDA Pro, Ghidra e Binary Ninja come backend di disassembly.

L'obiettivo principale di Quokka è consentire di manipolare completamente il binario senza mai aprire un disassembler dopo l'esportazione iniziale. Inoltre, astrae l'API del disassembler per esporre un'interfaccia pulita agli utenti.

Quokka è fortemente ispirato da BinExport, l'esportatore di binari usato da BinDiff.

Architettura

     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)

Installazione

Plugin Python

Il plugin viene compilato nella CI ed è disponibile nel registry.

Dovrebbe essere possibile installarlo direttamente tramite PIP usando un comando di questo tipo:

$ pip install quokka-project

Plugin IDA

Nota: il plugin IDA non è necessario per leggere un file generato da Quokka. Viene utilizzato solo per generarli.

Quokka è compatibile con IDA 9.1+.

Tramite il gestore plugin di IDA (IDA 9.2+)

Quokka è pubblicato nel repository dei plugin Hex-Rays e può essere installato con hcli:

user@host:~$ hcli plugin install quokka

Manualmente

Il plugin viene anche compilato nella CI ed è disponibile nella scheda Releases.

Per scaricare il plugin, prendi il file chiamato quokka_plugin.so (o l'archivio quokka-ida<version>.zip per la tua versione di IDA) e copialo nella tua directory plugins di IDA.

Estensione Ghidra

Quokka supporta anche l'esportazione da Ghidra (>= 12.0.3) tramite un'estensione dedicata. Produce gli stessi file protobuf .quokka che la libreria Python può caricare.

Per istruzioni di build, installazione e dettagli d'uso vedi il README dell'estensione Ghidra.

Estensione BinaryNinja

Quokka supporta anche l'esportazione da Binary Ninja tramite un plugin Python. Produce gli stessi file protobuf .quokka che la libreria Python può caricare.

Per istruzioni di installazione e dettagli d'uso vedi il README dell'estensione BinaryNinja.

Utilizzo

Esportazione tramite GUI

Il primo metodo manuale per esportare un binario è usare il plugin all'interno di IDA Pro. La scorciatoia predefinita in IDA è Alt+A. Apre la seguente finestra di dialogo:

Export Dialog

Le modalità disponibili sono:

  • LIGHT: Esporta solo i dati a livello di blocco (le istruzioni vengono decodificate a runtime da Capstone dai byte originali del binario)
  • FULL: Esporta istruzioni e operandi (modalità self-contained, non richiede il binario originale per il disassembly)

Nota: la modalità FULL non è ancora implementata. Solo la modalità LIGHT è attualmente funzionante.

Esportazione in modalità headless

IDA

Nota: questo richiede un'installazione IDA funzionante.

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

Tutte le opzioni disponibili sono descritte nella pagina Usage.

Nota: idat viene usato al posto di ida per aumentare la velocità di esportazione, poiché l'interfaccia grafica non è necessaria.

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

Vedi il README dell'estensione Ghidra per maggiori dettagli.

Binary Ninja

Nota: l'uso headless dell'API Binary Ninja richiede una licenza commerciale. In assenza di una, usa invece il comando di esportazione all'interno dell'interfaccia di Binary Ninja.

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

Vedi il README dell'estensione BinaryNinja per maggiori dettagli.

Esportazione tramite CLI

Quokka fornisce uno strumento CLI per esportare automaticamente uno o più file e/o directory (tutti i file eseguibili in ciascuna directory) in parallelo. Supporta sia i backend IDA Pro che Ghidra:

$ 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

Per impostazione predefinita, il file .quokka viene posizionato accanto al binario di input (ad es. /usr/bin/ls produce /usr/bin/ls.quokka). Usa -o per sovrascrivere questo comportamento con un percorso letterale o un template espanso per ogni file (%f = stem, %F = nome file, %p = directory padre, %P = percorso completo, %e = estensione, %% = % letterale).

Esegui quokka-cli --help per tutte le opzioni. I flag principali includono:

  • -b, --backend per scegliere il backend del disassembler (ida, ghidra o auto)
  • -i, --ida-path per fornire il percorso della directory di installazione di IDA (la cartella che contiene idat)
  • --ghidra-path per fornire la directory di installazione di Ghidra (sovrascrive GHIDRA_INSTALL_DIR)
  • -o, --output per impostare il percorso di output o il template (predefinito: %F.quokka)
  • -m, --mode per scegliere la modalità di esportazione (light o full)
  • --decompiled per abilitare l'esportazione del codice decompilato (solo IDA)
  • -v, --verbose per abilitare il logging verbose

Caricamento di un file di export

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

Modificare e aggiungere tipi

# Add new types from C declarations
prog.add_type("struct context { int id; char name[64]; };")
prog.add_type("enum status { OK=0, ERROR=1 };")
Scarica lo strumento