Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
KeyPatchX — KeyPatch Enhanced — Plugin de IDA Pro para el parcheo de ensamblado x86/x64 con reconocimiento de símbolos, impulsado por Keystone Engine. Fork de Keypatch con resolución automática de símbolos de IDA, codificación relativa a RIP y corrección de nombres _↔. | Kitploit
Herramientas/GitHubGitHub/gmh5225/keypatchx
Análisis EstáticoExplotaciónIngeniería InversaDepuradoresUtilidades y FrameworksAnálisis de BinariosExplotación de Binarios
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — Plugin de IDA Pro para el parcheo de ensamblado x86/x64 con reconocimiento de símbolos, impulsado por Keystone Engine. Fork de Keypatch con resolución automática de símbolos de IDA, codificación relativa a RIP y corrección de nombres _↔.

Ver Repositorio
92hace 7 mesesAún no revisado

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

KeyPatch Enhanced — Plugin de ensamblado con reconocimiento de símbolos para IDA Pro

Basado en Keypatch (por Nguyen Anh Quynh & Thanh Nguyen), una bifurcación mejorada modificada por Euarno.

Mejora principal: usar directamente nombres de símbolos de IDA en ensamblado x86/x64, el plugin resuelve automáticamente las direcciones y genera la codificación correcta RIP-relative / rel32.


Nuevas funciones

1. Ensamblado usando directamente nombres de símbolos

Introduce directamente instrucciones con nombres de símbolos en el diálogo de Keypatch, sin necesidad de calcular manualmente direcciones y desplazamientos:

call rc4_crypt          ; calcula automáticamente el desplazamiento relativo rel32
jmp  main               ; igual que arriba
lea  rcx, enc_0         ; x64: genera automáticamente lea rcx, [rip + disp32]
lea  rax, Format         ; igual que arriba

2. Corrección automática de nombres de IDA (_ ↔ .)

IDA a veces muestra . en la base de datos como _ (por ejemplo, enc.0 se muestra como enc_0). El plugin intentará automáticamente la variante _ → . en la búsqueda, sin necesidad de preocuparse por el formato de almacenamiento interno de IDA.

3. Tipos de instrucciones soportadas

TipoEjemploTratamiento
CALL / JMP / Jcccall func_nameSímbolo → dirección absoluta, Keystone calcula rel32
LEA (símbolo simple)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA (operando compuesto)lea rcx, [rbp+0x120+Str]Solo reemplaza el símbolo por el valor de dirección, conserva la estructura de la expresión
MOV offsetmov rax, offset symbolx64: se convierte en lea rax, [rip + disp32]
si está fuera de rango se usa mov rax, imm64
Acceso a memoria [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR], Keystone codifica automáticamente
Símbolo como inmediatopush symbolSímbolo → 0xADDR

4. Mensajes de error mejorados

Cuando falla el ensamblado, la ventana de salida mostrará:

Keypatch: Keystone error: Invalid operand (KS_ERR_ASM_INVALIDOPERAND)
Keypatch:   input asm  : lea rcx, [rip + 0x176E3]
Keypatch:   fixed asm  : LEA RCX, [RIP + 0x176E3]
Keypatch:   address    : 0x140001966

Instalación

Dependencias previas

  • IDA Pro 7.0+
  • Enlaces de Python de Keystone Engine
pip install keystone-engine

Instalar el plugin

Copia keypatch.py al directorio de plugins de IDA:

SistemaRuta
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ o <directorio de instalación de IDA>\plugins\
macOS~/.idapro/plugins/ o <directorio de instalación de IDA>/plugins/
Linux~/.idapro/plugins/ o <directorio de instalación de IDA>/plugins/

Reinicia IDA y listo.


Modo de uso

Abrir el Patcher

  • Menú: Edit → Keypatch → Patcher
  • Atajo de teclado: Ctrl + Alt + K
  • Menú contextual: Keypatch → Patcher

Flujo de trabajo básico

  1. En la ventana de desensamblado de IDA, coloca el cursor en la dirección objetivo
  2. Pulsa Ctrl + Alt + K para abrir el Patcher
  3. Introduce la instrucción en el campo Assembly (puedes usar nombres de símbolos de IDA)
  4. Revisa el campo Encoding para confirmar que la codificación es correcta
  5. Haz clic en Patch para aplicar la modificación

Ejemplo: Hook de llamada a función

Supongamos que quieres parchear en 0x140001966 un salto a rc4_crypt:

Assembly: call rc4_crypt

El plugin resuelve automáticamente la dirección de rc4_crypt, calcula el desplazamiento rel32 y genera la codificación correcta E8 xx xx xx xx.

Ejemplo: Cargar dirección de datos

Assembly: lea rcx, enc_0

El plugin automáticamente:

  1. Resuelve enc_0 (el nombre interno puede ser enc.0) → dirección 0x140013050
  2. Calcula el desplazamiento RIP-relative disp32 = 0x140013050 - (0x140001966 + 7)
  3. Genera lea rcx, [rip + 0x176E3]
  4. Lo pasa a Keystone para codificarlo como código máquina

Rellenar rango (Fill Range)

  1. Selecciona un rango de direcciones en la ventana de desensamblado
  2. Pulsa Ctrl + Alt + K para abrir Fill Range
  3. Introduce la instrucción (por ejemplo nop), se rellenará automáticamente todo el rango

Deshacer

  • Menú: Edit → Keypatch → Undo last patching

Notas

  • Limitación del rango RIP-relative: el direccionamiento RIP-relative de lea y [symbol] tiene un rango de ±2GB. Si el símbolo está fuera de rango, el plugin mostrará un error.
  • Limitación de inmediatos en x64: push symbol en x64 requiere que la dirección del símbolo sea ≤ 0x7FFFFFFF (extensión de signo de imm32), de lo contrario se emitirá una advertencia. Se recomienda usar lea reg, symbol + push reg.
  • Múltiples sentencias con punto y coma: actualmente no se soporta la resolución de símbolos en múltiples sentencias del tipo lea rcx, sym; call func. Parchea una por una.

Proyecto original

  • Autores originales: Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • Proyecto original: keystone-engine/keypatch
  • Licencia original: GPL v2
  • Página del proyecto: http://keystone-engine.org/keypatch
  • Keystone Engine: http://www.keystone-engine.org

Modificador

  • Euarno — función de resolución automática de símbolos de IDA, corrección de nombres _ ↔ ., soporte de codificación RIP-relative en x64, salida de errores mejorada

Licencia

Esta versión modificada se publica bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.

Los derechos de autor del código original de Keypatch pertenecen a los autores originales, publicado bajo GPL v2.

Descargar herramienta