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
exrop — Automatisierter ROP-Kettengenerator für x86-64-Binärdateien mittels symbolischer Ausführung. Unterstützt Register-/Speicherschreibvorgänge, Funktionsaufrufe, Syscalls, Badchar-Vermeidung, Stack-Pivoting und Kernel-Modus mit Retpoline-Umschreibung. | Kitploit
Tools/GitHubGitHub/d4em0n/exrop
Exploit-FrameworksPayload-GenerierungReverse EngineeringCTFBinary-Exploitation
GitHubd4em0n/exrop

exrop

Automatisierter ROP-Kettengenerator für x86-64-Binärdateien mittels symbolischer Ausführung. Unterstützt Register-/Speicherschreibvorgänge, Funktionsaufrufe, Syscalls, Badchar-Vermeidung, Stack-Pivoting und Kernel-Modus mit Retpoline-Umschreibung.

Repository anzeigen
30922vor 5 MonatenVon 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

Exrop

Automatischer ROP-Ketten-Generator für x86-64-Binärdateien, unterstützt durch Triton symbolische Ausführung.

Funktionen

  • Register auf Konstanten oder andere Register setzen (rdi=0x41414141, rdi=rax)
  • In Speicher schreiben (konstante und registerbasierte Adressen/Werte)
  • Strings/Bytes in Speicher schreiben
  • Funktionsaufrufe mit gemischten Konstanten-/Register-/String-Argumenten (open("/etc/passwd", 0))
  • Syscall-Ketten
  • Badchar-Vermeidung
  • Unterstützung für Non-Return-Gadgets (jmp reg, call reg)
  • Stack-Pivoting mit JOP-Kettensuche für Kernel-Exploits
  • Kernel-Modus mit automatischem Umschreiben von Retpoline-Thunks
  • Clean-Only-Modus zum Filtern von Gadgets mit gefährlichen Nebenwirkungen beim Schreiben in den Speicher
  • Suffix-basierte Komposition: Multi-Instruktions-Gadgets aus bereits analysierten Suffixen
  • Multiprozess-Gadget-Analyse mit Fortschrittsanzeige
  • Gadget-Caching (pickle) für schnelle Wiederverwendung

Installation

pip (empfohlen)

root@kitploit:~
pip install git+https://github.com/d4em0n/exrop.git

Dies installiert exrop und seine Python-Abhängigkeiten (pyelftools, ROPGadget, triton-library).

Hinweis: Das triton-library-pip-Paket funktioniert möglicherweise nicht auf allen Plattformen. Wenn die Installation fehlschlägt, bauen Sie Triton aus dem Quellcode und installieren Sie exrop ohne die Triton-Abhängigkeit:

root@kitploit:~
pip install --no-deps git+https://github.com/d4em0n/exrop.git
pip install pyelftools ROPGadget

Für die Entwicklung (editierbare Installation mit Testabhängigkeiten):

root@kitploit:~
git clone https://github.com/d4em0n/exrop.git
cd exrop
pip install -e ".[dev]"

Manuell

  1. Python 3.6+ installieren
  2. Triton installieren
  3. ROPGadget installieren
  4. Optional: Keystone installieren (nur für Tests erforderlich)
  5. Dieses Repository klonen und zum Python-Pfad hinzufügen:
    root@kitploit:~
    git clone https://github.com/d4em0n/exrop.git
    export PYTHONPATH=/path/to/exrop:$PYTHONPATH
    

Schnellstart

root@kitploit:~
from Exrop import Exrop

rop = Exrop("/bin/ls")
rop.find_gadgets(cache=True)

# Set registers
chain = rop.set_regs({'rdi': 0x41414141, 'rsi': 0x42424242, 'rdx': 0x43434343})
chain.dump()

# Write to memory
chain = rop.set_writes({0x41414141: 0xdeadbeefff, 0x43434343: 0x00110011})
chain.dump()

# Write string to memory
chain = rop.set_string({0x41414141: "Hello world!\n"})
chain.dump()

# Function call
chain = rop.func_call(0x41414141, (0x20, 0x30, "Hello"), 0x7fffff00)
chain.dump()

Ausgabe:

root@kitploit:~
$RSP+0x0000 : 0x00000000000060d0 # pop rbx; ret
$RSP+0x0008 : 0x0000000044444444
$RSP+0x0010 : 0x0000000000014852 # mov rax, rbx; pop rbx; ret
$RSP+0x0018 : 0x0000000000000000
$RSP+0x0020 : 0x0000000000004ce5 # pop rdi; ret
$RSP+0x0028 : 0x0000000041414141
$RSP+0x0030 : 0x000000000000629c # pop rsi; ret
$RSP+0x0038 : 0x0000000042424242
$RSP+0x0040 : 0x0000000000003a62 # pop rdx; ret
$RSP+0x0048 : 0x0000000043434343
$RSP+0x0050 : 0x00000000000060d0 # pop rbx; ret
$RSP+0x0058 : 0x0000000045454545

Kernel-Modus

Für Linux-Kernel mit Retpoline-Absicherungen erkennt kernel_mode=True automatisch Thunk-Symbole, schreibt Gadgets um und beschränkt auf den .text-Abschnitt:

root@kitploit:~
from Exrop import Exrop

rop = Exrop("/path/to/vmlinux")
rop.find_gadgets(cache=True, kernel_mode=True)
rop.clean_only = True  # Gadgets mit gefährlichen Nebenwirkungen beim Schreiben ausschließen

# Register setzen
chain = rop.set_regs({'rdi': 0x41414141, 'rsi': 0})
chain.dump()

# Pivot-Gadgets finden (direkt, JOP-verkettet, indirekt)
pivots = rop.stack_pivot_reg('rdi')
for p in pivots[:5]:
    p.dump()

# Payload für einen Pivot erstellen
payload = pivots[0].build_payload(chain)

exkrop CLI

Der Befehl exkrop bietet einen interaktiven Workflow zur Generierung von Kernel-ROP-Ketten mit Pivot-Auswahl und C-Code-Ausgabe:

root@kitploit:~
exkrop <vmlinux>
# oder:
python3 -m exkrop <vmlinux>

Funktionen: Exploit-Vorlagen (Privilegieneskalation, core_pattern-Überschreibung), KASLR-relativierte Ausgabe, Pivot-Gadget-Browser, Behandlung reservierter Offsets und C-Code-Generierung. Siehe exkrop/README.md für Details.

Userspace-Beispiel: open-read-write

root@kitploit:~
from pwn import *
from Exrop import Exrop

libc = ELF("/lib/x86_64-linux-gnu/libc.so.6", checksec=False)
rop = Exrop(libc.path)
rop.find_gadgets(cache=True)

bss = libc.bss()

chain = rop.func_call(libc.symbols['open'], ("/etc/passwd", 0), bss)
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

chain = rop.func_call(libc.symbols['read'], ('rax', bss, 0x100))
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

chain = rop.func_call(libc.symbols['write'], (1, bss, 0x100))
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

Weitere Beispiele im Verzeichnis examples/.

Tool herunterladen