Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/lunixbochs/patchkit
Ingeniería InversaAnálisis de BinariosExplotación de Binarios
GitHublunixbochs/patchkit

patchkit

parcheo binario desde Python

Ver Repositorio
638825hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

patchkit

Parchea un binario ELF usando uno o más scripts simples de Python.

Uso:

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

patchdir

Contiene uno o más archivos de parche Python, que se ejecutarán en orden alfabético contra un binario.

Ejemplos de Parche

Nopeando una dirección, inyectando una función en ensamblador, y enganchando el punto de entrada:

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)

Reemplazando una función 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* es cualquiera de los siguientes:
  raw='data'
  hex='0bfe'
  asm='nop'
  jmp=0xaddr
  c='void func() { int a; a = 1; }' (solo soportado en inject, no en patch)

Scripts de IDA

Algunos scripts residen en la ruta ida/. Ejecútalos así:

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

Cuando se invoca así, allfuncs.py generará a.out.funcs que es usado por los scripts de hardening.

Herramientas

Actualmente son algo específicos de CGC y x86, pero se portarán para uso general en el futuro.

  • explore: usa un CFG de Python y un emulador de retroceso recursivo para encontrar bloques básicos en un ejecutable
  • bindiff: usa los límites de bloques de una ejecución de explore, así como análisis adicionales para encontrar y generar diferencias de bloques básicos entre dos binarios

Dependencias

  • Ejecuta ./deps.sh para instalarlos automáticamente.
    • 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
Descargar herramienta