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
patchkit — Binäres Patchen mit Python | Kitploit
Tools/GitHubGitHub/lunixbochs/patchkit
Reverse EngineeringBinäranalyseBinary-Exploitation
GitHublunixbochs/patchkit

patchkit

Binäres Patchen mit Python

Repository anzeigen
638825vor 3 JahrenVon 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

patchkit

Patcht eine ELF-Binärdatei mit einem oder mehreren einfachen Python-Skripten.

Verwendung:

root@kitploit:~
patch <binary> <patchdir|file> [patchdir|file...]

patchdir

Enthält ein oder mehrere Python-Patch-Dateien, die in alphabetischer Reihenfolge gegen eine Binärdatei ausgeführt werden.

Patch-Beispiele

Noppen einer Adresse, Einfügen einer Assembler-Funktion und Hooken des Einstiegspunkts:

root@kitploit:~
def simple_patch(pt):
    # nop out a jump at the entry point
    pt.patch(pt.entry, hex='90' * 5)

    # inject assembly into the binary and return the address
    addr = pt.inject(asm='mov eax, 1; ret')

    # hook the entry point to make it call addr (ret will run the original entry point)
    pt.hook(pt.entry, addr)

Ersetzen einer C-Funktion:

root@kitploit:~
def replace_free(pt):
    # pretend free() is at this address:
    old_free = 0x804fc4

    # inject a function to replace free()
    new_free = pt.inject(c=r'''
    void free_stub(void *addr) {
        printf("stubbed free(%p)\n", addr);
    }
    ''')

    # patch the beginning of free() with a jump to our new function
    pt.patch(old_free, jmp=new_free)

API

root@kitploit:~
addr = search(data)
hook(addr, new_addr)
patch(addr, *compile arg*)
addr = inject(*compile arg*)

*compile arg* ist einer der folgenden:
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (wird nur bei inject unterstützt, nicht bei patch)

IDA-Skripte

Einige Skripte befinden sich im ida/-Pfad. Führen Sie sie so aus:

root@kitploit:~
/Applications/IDA\ Pro\ 6.8/idaq.app/Contents/MacOS/idaq64 -A -Sida/allfuncs.py a.out

Wenn es so aufgerufen wird, erzeugt allfuncs.py a.out.funcs, das von Hardening-Skripten verwendet wird.

Werkzeuge

Diese sind derzeit etwas CGC- und x86-spezifisch, werden aber in Zukunft für die allgemeine Verwendung portiert.

  • explore: verwendet einen Python-CFG und einen rekursiven Backtracking-Emulator, um Basisblöcke in einer ausführbaren Datei zu finden
  • bindiff: verwendet die Blockgrenzen eines explore-Laufs sowie zusätzliche Analysen, um Basisblock-Diffs zwischen zwei Binärdateien zu finden und auszugeben

Abhängigkeiten

  • Führen Sie ./deps.sh aus, um diese automatisch zu installieren.
    • Capstone Engine - https://github.com/aquynh/capstone.git
    • Keystone Engine - https://github.com/keystone-engine/keystone.git
    • Unicorn Engine - https://github.com/unicorn-engine/unicorn.git
Tool herunterladen