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
kong — Der weltweit erste agentische Reverse Engineer. | Kitploit
Tools/GitHubGitHub/amruth-sn/kong
Statische AnalyseDynamische Analyse (Sandboxing)SchwachstellenanalyseExploitationReverse EngineeringDebuggerMalware-AnalyseBinäranalyseLernen & BildungKI-gestütztes Reverse EngineeringFirmware-Analyse
1.1k1257vor 5 MonatenVon Kitploit geprüft
GitHub
amruth-sn/kong

kong

Der weltweit erste agentische Reverse Engineer.

Repository anzeigenWebseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Kong: Der agentische Reverse Engineer

PyPI - Version X (formerly Twitter) URL

Kong: Der weltweit erste KI-Reverse Engineer

LLM-Orchestrierung zum Reverse Engineering von Binärdateien

Was ist Kong?

Die meisten Aufgaben folgen einer linearen Beziehung: Je schwieriger eine Aufgabe, desto länger dauert sie normalerweise. Reverse Engineering (und Binäranalyse) ist eine Aufgabe, bei der die tatsächliche Schwierigkeit eher trivial ist, aber die Ausführungszeit in der Größenordnung von Stunden (und Tagen!) liegen kann, selbst für eine Binärdatei mit ein paar hundert Funktionen.

Kong automatisiert die mechanische Schicht unter Verwendung eines Reverse-Engineering-Frameworks auf NSA-Niveau. Kong kann eine vollständig obfuskatierte, gestrippte Binärdatei nehmen und eine vollständige Analyse-Pipeline durchführen: Funktionen triagieren, Call-Graph-Kontext aufbauen, Typen und Symbole durch LLM-gestützte Dekompilation wiederherstellen und die Ergebnisse zurück in Ghidras Programmdatenbank schreiben. Die Ausgabe ist eine Binärdatei, in der aus FUN_00401a30 nun parse_http_header wird, mit wiederhergestellten Strukturen, Parameternamen und Aufrufkonventionen.

Warum es das gibt

Gestrippte Binärdateien verlieren den gesamten Kontext, der Code lesbar macht: Funktionsnamen, Typinformationen, Variablennamen, Strukturlayouts. Die Wiederherstellung dieses Kontexts ist der Großteil der Arbeit bei den meisten RE-Aufgaben, und es ist größtenteils Mustererkennung: Erkennen von Standardbibliotheksfunktionen, Ableiten von Typen aus der Nutzung, Propagieren von Namen durch Call-Graphen.

Tool herunterladen

LLMs sind genau für diese Art der Mustererkennung gut geeignet. Aber einen LLM auf rohe Dekompiler-Ausgabe zu richten und zu fragen "was macht das?" liefert mittelmäßige Ergebnisse. Dem Modell fehlt der Aufrufkontext, Kreuzreferenzinformationen und das größere Bild der Binärstruktur. Darüber hinaus führen die meisten obfuskierten Binärdateien extreme Techniken ein, um Reverse Engineering zu verhindern.

Kong löst dies, indem es reichhaltige Kontextfenster aus Ghidras Programm-Analyse (Call-Graphen, Kreuzreferenzen, String-Referenzen, Datenfluss) aufbaut, bevor der LLM überhaupt berührt wird, und dann die Analyse in Abhängigkeitsreihenfolge orchestriert, sodass jede Funktion davon profitiert, dass ihre Callees bereits benannt sind. Zusätzlich führt Kong seine eigene, erstmalige, agentische Deobfuskations-Pipeline ein.

In Aktion

Kong: Der weltweit erste KI-Reverse Engineer
Kong: Der weltweit erste KI-Reverse Engineer

Features

  • Vollautomatische Pipeline: Ein einziger Befehl führt die vollständige Analyse durch. Triage, Funktionsanalyse, Bereinigung, semantische Synthese und Export. Kein manueller Eingriff erforderlich.
  • In-Prozess-Ghidra-Integration: Führt Ghidras Analyse-Engine in-Prozess über PyGhidra und JPype aus. Kein Server, kein RPC, kein Subprozess-Overhead. Direkter Zugriff auf die Programmdatenbank.
  • Nach Call-Graph geordnete Analyse: Funktionen werden vom Call-Graph aus bottom-up analysiert. Blattfunktionen werden zuerst benannt, sodass Aufrufer vom bereits aufgelösten Kontext in ihrer Dekompilation profitieren.
  • Reichhaltige Kontextfenster: Jeder LLM-Prompt enthält die Dekompilation der Zielfunktion sowie Kreuzreferenzen, String-Referenzen, Aufrufer/Callee-Signaturen und benachbarte Daten; nicht nur rohe Dekompiler-Ausgabe in Isolation.
  • Semantische Synthese: Ein Post-Analyse-Durchlauf, der Namenskonventionen über die Binärdatei vereinheitlicht, Strukturdefinitionen aus Feldzugriffsmustern synthetisiert und Inkonsistenzen zwischen unabhängig analysierten Funktionen auflöst.
  • Signatur-Abgleich: Bekannte Standardbibliotheks- und Kryptographiefunktionen werden vor der LLM-Analyse per Muster identifiziert, wodurch teure Inferenz für Funktionen mit bekannter Identität übersprungen wird.
  • Syntaktische Normalisierung: Die Dekompiler-Ausgabe wird bereinigt (Modulo-Wiederherstellung, Rekonstruktion negativer Literale, Entfernung toter Zuweisungen), bevor sie den LLM erreicht, wodurch Rauschen und Token-Verschwendung reduziert werden.
  • Agentische Deobfuskation: Kong verwendet eine agentische Deobfuskations-Pipeline, die Obfuskationstechniken (Kontrollflussglättung, unechter Kontrollfluss, Befehlsersetzung, String-Verschlüsselung, VM-Schutz usw.) in der Dekompiler-Ausgabe identifizieren und entfernen kann.
  • Eval-Framework: Eingebautes Evaluierungs-Framework, das Analyseergebnisse mit Ground-Truth-Quellcode vergleicht und die Symbolgenauigkeit (wortbasierter Jaccard) und Typgenauigkeit (Signaturkomponenten-Bewertung) misst.
  • Multi-Provider-LLM-Unterstützung: Funktioniert sofort mit Anthropic (Claude) und OpenAI (GPT-4o). Ein interaktiver Setup-Assistent konfiguriert Provider und intelligentes Routing wählt automatisch den mit gültigem Schlüssel aus.
  • Kostenverfolgung: Verfolgt Token-Nutzung und Kosten pro Modell über Provider hinweg, mit providerbewusster Preisgestaltung.

Unterstützte Architekturen

Kong arbeitet mit den meisten Ghidra-dekompilierbaren Binärdateien (vorerst, mehr folgen).

Confidence

CC++GoRust
x86HochHochMittelMittel
x86-64HochHochMittelMittel
ARM (32-bit)HochHochMittelNiedrig
AArch64HochHochMittelNiedrig
MIPSMittelMittelNiedrigNiedrig
PowerPCMittelMittelNiedrigNiedrig

Hoch: Kong dekompiliert, deobfuskiert und stellt Namen, Typen und Struktur zuverlässig wieder her.

Mittel: Die Dekompilation ist brauchbar, aber verrauschter. Erwarten Sie teilweise Wiederherstellung und niedrigere Konfidenzwerte.

Niedrig: Die Dekompilation hat erhebliche Lücken und die Ergebnisse bleiben unvollständig, verrauscht oder unlesbar.

Hinweis: Die Binärdateigröße skaliert positiv mit der Funktionsanzahl, den LLM-Kosten und der Fertigstellungszeit. Allerdings skaliert die Binärdateigröße auch negativ mit der Konfidenz, denken Sie daran bei der Analyse größerer Binärdateien.

Architektur

Kong verwendet eine fünfphasige Pipeline, die von einem Supervisor orchestriert wird, der Triage, parallele Analyse und Nachbearbeitung koordiniert:

root@kitploit:~
                    ┌──────────────────────┐
                    │       Triage         │
                    │  enumerate, classify,│
                    │  build call graph,   │
                    │  match signatures    │
                    └──────────┬───────────┘
                               │
                               ▼
              ┌────────────────┼────────────────┐
              │                │                │
              ▼                ▼                ▼
     ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
     │   Analyze    │ │   Analyze    │ │     ...      │
     │  (leaf fns)  │ │ (next tier)  │ │              │
     └──────┬───────┘ └──────┬───────┘ └──────┬───────┘
            │                │                │
            └────────┬───────┴────────────────┘
                     │
                     ▼
            ┌──────────────────────┐
            │      Cleanup         │
            │  normalize, dedupe   │
            └──────────┬───────────┘
                       │
                       ▼
            ┌──────────────────────┐
            │     Synthesis        │
            │  unify names, build  │
            │  structs, deobfuscate│
            └──────────┬───────────┘
                       │
                       ▼
            ┌──────────────────────┐
            │       Export         │
            │  analysis.json +     │
            │  Ghidra writeback    │
            └──────────────────────┘

So funktioniert es

Triage zählt alle Funktionen in der Binärdatei auf, klassifiziert sie nach Größe (trivial / klein / mittel / groß), erstellt den Call-Graphen, erkennt die Quellsprache und führt einen Signaturabgleich mit bekannten Standardbibliotheks- und Kryptofunktionen durch. Funktionen, die durch Signaturen übereinstimmen, werden als aufgelöst markiert und überspringen die LLM-Analyse vollständig.

Analyse verarbeitet Funktionen in bottom-up-Reihenfolge aus dem Call-Graphen mit einer Arbeitswarteschlange. Für jede Funktion baut Kong ein Kontextfenster aus Ghidras Programmdatenbank auf — Dekompilation, Kreuzreferenzen, String-Referenzen und die Signaturen bereits analysierter Callees — normalisiert die Dekompiler-Ausgabe und sendet sie an den LLM zur Wiederherstellung von Namen, Typen und Parametern. Wenn in der Dekompilation einer Funktion Obfuskation erkannt wird, führt Kong einen agentischen Deobfuskations-Durchlauf mit symbolischem Tool-Zugang durch, bevor die Analyse erstellt wird. Ergebnisse werden sofort zurück in Ghidra geschrieben, sodass nachgelagerte Aufrufer aktualisierte Namen sehen.

Bereinigung vereinheitlicht Strukturtypen aus während der Analyse gesammelten Vorschlägen und wiederholt Funktionssignaturen, die während des Analyse-Durchlaufs fehlgeschlagen sind.

Synthese nimmt eine globale Sicht auf alle analysierten Funktionen ein. Ein einziger LLM-Aufruf überprüft die am stärksten verbundenen Funktionen, vereinheitlicht Namenskonventionen, synthetisiert Strukturdefinitionen aus Feldzugriffsmustern und verfeinert Namen, die im weiteren Kontext inkonsistent erscheinen.

Export schreibt die finale analysis.json und wendet alle wiederhergestellten Namen, Typen und Signaturen zurück auf die Ghidra-Programmdatenbank an.

Stack

  • Laufzeit: Python 3.11+, verwaltet mit uv
  • Binäranalyse: Ghidra via PyGhidra (In-Prozess, JPype)
  • LLM: Anthropic SDK (Claude) und OpenAI SDK (GPT-4o)
  • Symbolische Analyse: z3-solver
  • CLI: Click
  • TUI: Textual
  • Anzeige: Rich
  • Build: hatchling
  • Testing: pytest

Einrichtung

Voraussetzungen

  • Python 3.11+ — (python.org oder Ihr Systempaketmanager)
  • uv — Python-Paketmanager (uv installieren)
  • Ghidra — Das Reverse-Engineering-Framework der National Security Agency (Ghidra installieren)
  • JDK 21+ — Von Ghidra benötigt (Adoptium)
  • LLM-API-Schlüssel — Mindestens einer von:
    • Anthropic (Claude)
    • OpenAI (GPT-4o)

Schnellstart

root@kitploit:~
# 1. Kong installieren
uv pip install kong-re

# 2. API-Schlüssel setzen
export ANTHROPIC_API_KEY="sk-ant-..."
# und/oder
export OPENAI_API_KEY="sk-..."

# 3. Setup-Assistent ausführen (nur beim ersten Mal)
kong setup

# 4. Binärdatei analysieren
kong analyze ./pfad/zur/gestrippten_binaerdatei

Der Setup-Assistent lässt Sie auswählen, welche LLM-Provider verwendet werden sollen, und legt einen Standard fest. Kong erkennt Ihre Ghidra- und JDK-Installationen automatisch, lädt die Binärdatei in eine In-Prozess-Ghidra-Instanz und führt die vollständige Pipeline aus.

Aus dem Quellcode

root@kitploit:~
git clone https://github.com/amruth-sn/kong.git
cd kong
uv sync
uv run kong setup
uv run kong analyze ./pfad/zur/gestrippten_binaerdatei

Umgebungsvariablen

VariableErforderlichBeschreibung
ANTHROPIC_API_KEYJa (mindestens einer)Anthropic-API-Schlüssel (Claude)
OPENAI_API_KEYJa (mindestens einer)OpenAI-API-Schlüssel (GPT-4o)
GHIDRA_INSTALL_DIRNeinPfad zur Ghidra-Installation (wird automatisch erkannt, wenn nicht gesetzt)
JAVA_HOMENeinPfad zum JDK (wird automatisch erkannt, wenn nicht gesetzt)
KONG_CONFIG_DIRNeinÜberschreibt das Konfigurationsverzeichnis (Standard: ~/.config/kong)

Nutzung

root@kitploit:~
# Setup-Assistent ausführen
kong setup

# Gestrippte Binärdatei analysieren (verwendet den konfigurierten Standard-Provider)
kong analyze ./binary

# Mit einem bestimmten Provider analysieren
kong analyze ./binary --provider openai

# Das Modell überschreiben
kong analyze ./binary --provider openai --model gpt-4o-mini

# Binärdatei-Metadaten anzeigen ohne Analyse
kong info ./binary

# Analyseergebnisse mit Ground-Truth-Quellcode evaluieren
kong eval ./analysis.json ./source.c

Ausgabe

Ergebnisse werden in das Ausgabeverzeichnis geschrieben (Standard: ./kong_output_{binary_name}/):

root@kitploit:~
kong_output_{binary_name}/
├── analysis.json         # Alle wiederhergestellten Funktionsnamen, Typen, Parameter
└── events.log            # Pipeline-Ausführungsprotokoll

Benchmarks

Kong hat autonom die gesamte XZ-Hintertür (CVE-2024-3094) Kill Chain aus einer gestrippten liblzma.so.5.4.1 rekonstruiert — Identifizierung aller fünf Kern-Implant-Funktionen mit 90-95% Konfidenz in 15 Minuten für 6,63 $.

Siehe BENCHMARKS.md für die vollständige Fallstudie und Reproduktionsanweisungen.

Projektstruktur

root@kitploit:~
kong/
├── __main__.py           # CLI-Einstiegspunkt (click)
├── config.py             # KongConfig, LLMProvider, LLMConfig
├── db.py                 # SQLite-Konfigurationsspeicher (~/.config/kong/)
├── banner.py             # ASCII-Banner, API-Key-Helfer
├── agent/
│   ├── supervisor.py     # Pipeline-Orchestrator
│   ├── triage.py         # Funktionsaufzählung + Klassifizierung
│   ├── analyzer.py       # LLM-gestützte Funktionsanalyse
│   ├── queue.py          # BFS-Arbeitswarteschlange aus Call-Graph
│   ├── signatures.py     # Signaturabgleich bekannter Funktionen
│   ├── prompts.py        # System-Prompt + Ausgabeschema
│   ├── events.py         # Phasen-/Ereignistypen für Pipeline-Tracing
│   └── models.py         # FunctionResult-Dataclass
├── ghidra/
│   ├── client.py         # In-Prozess-GhidraClient (PyGhidra/JPype)
│   ├── types.py          # FunctionInfo, BinaryInfo, XRef, etc.
│   └── environment.py    # Ghidra/JDK-Autoerkennung
├── llm/
│   ├── client.py         # AnthropicClient
│   ├── openai_client.py  # OpenAIClient
│   ├── usage.py          # TokenUsage, Kostenverfolgung, Preisregister
│   └── limits.py         # Modellspezifische Grenzen + Ratenbegrenzer
├── normalizer/
│   └── syntactic.py      # Normalisierung der Dekompiler-Ausgabe
├── synthesis/
│   └── semantic.py       # Globale Namensvereinheitlichung + Struktursynthese
├── evals/
│   ├── harness.py        # Ground-Truth-Extraktion + Bewertung
│   └── metrics.py        # symbol_accuracy, type_accuracy
├── export/
│   └── source.py         # analysis.json + Ghidra-Rückschreiben
├── signatures/
│   ├── stdlib.json       # Signaturen der C-Standardbibliothek
│   └── crypto.json       # Signaturen kryptografischer Funktionen
└── tui/
    └── app.py            # Textual TUI

Lizenz

APACHE

Kong ist unter der Apache Lizenz 2.0 lizenziert. Kong ist ein freies und Open-Source-Projekt.

Diese Lizenz ist mit der Ghidra-Lizenz kompatibel und erlaubt kommerzielle Nutzung.

Mitwirken

Fehlermeldungen und Feature-Anfragen sind über GitHub Issues willkommen.

Zögern Sie auch nicht, mich auf X oder LinkedIn zu kontaktieren!

Danksagungen

  • Ghidra
  • PyGhidra
  • JPype
  • Anthropic SDK
  • OpenAI SDK
  • Z3
  • Textual
  • Rich

Ein großes Dankeschön an das Shannon-Projekt von KeygraphHQ, das die Inspiration für dieses Projekt geliefert hat. Meine Motivation war es, die gleiche Art von Pipeline, die Shannon für sein webbasiertes Pentesting-Tool verwendet, zu replizieren und für Binäranalyse und Dekompilation anzupassen.


Fürchte den Affen.


Kong
Kong: Der weltweit erste KI-Reverse Engineer