Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
patchkit — patching binario da Python | Kitploit
Strumenti/GitHubGitHub/lunixbochs/patchkit
Reverse EngineeringAnalisi di BinariBinary Exploitation
GitHublunixbochs/patchkit

patchkit

patching binario da Python

Vedi Repository
6388253 anni 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 →
Condividi

patchkit

Applica patch a un binario ELF utilizzando uno o più semplici script Python.

Utilizzo:

root@kitploit:~
patch <binario> <percorso_patch|file> [percorso_patch|file...]

patchdir

Contiene uno o più file di patch Python, che verranno eseguiti in ordine alfabetico su un binario.

Esempi di patch

NOP di un indirizzo, iniezione di una funzione assembly e hook del punto di ingresso:

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)

Sostituzione di una funzione C:

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* is any of the following:
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (only supported on inject, not patch)

Script IDA

Alcuni script si trovano nel percorso ida/. Eseguili in questo modo:

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

Se invocato in questo modo, allfuncs.py genererà a.out.funcs, utilizzato dagli script di hardening.

Strumenti

Attualmente sono un po' specifici per CGC e x86, ma verranno portati per uso generale in futuro.

  • explore: utilizza un CFG Python e un emulatore di backtracking ricorsivo per trovare blocchi base in un eseguibile
  • bindiff: utilizza i confini dei blocchi da un'esecuzione di explore, oltre ad analisi aggiuntive, per trovare e produrre differenze di blocchi base tra due binari

Dipendenze

  • Esegui ./deps.sh per installarle automaticamente.
    • 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
Scarica lo strumento