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
BugChecker — Depurador de kernel similar a SoftICE para Windows 11 | Kitploit
Herramientas/GitHubGitHub/vitoplantamura/bugchecker
Análisis Dinámico (Sandboxing)Ingeniería InversaDepuradoresAnálisis de Binarios
GitHubvitoplantamura/bugchecker

BugChecker

Depurador de kernel similar a SoftICE para Windows 11

Ver Repositorio
1.1k14428hace 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

BugChecker

Introducción

BugChecker es un depurador de kernel y modo usuario similar a SoftICE para Windows 11 (y también para Windows XP: soporta versiones de Windows desde XP hasta 11, tanto x86 como x64). BugChecker no requiere una segunda máquina conectada al sistema que se está depurando, como en el caso de WinDbg y KD. Esta versión de BugChecker (a diferencia de la versión original desarrollada hace 20 años) aprovecha la API KD interna y no documentada de NTOSKRNL. La API KD permite a WinDbg/KD realizar llamadas como leer/escribir memoria virtual, leer/escribir registros, colocar un punto de interrupción en una dirección, etc.

Por el contrario, el BugChecker original, al igual que SoftICE, solía "tomar el control" del sistema, enganchando varias API del kernel (tanto exportadas como privadas), tomando el control del APIC, enviando IPI, etc. Este enfoque aumenta la complejidad exponencialmente (y reduce la estabilidad del sistema), ya que la implementación debe ser compatible con todas las versiones y subversiones de Windows compatibles (a nivel de firma de funciones), así como con todas las configuraciones de hardware compatibles posibles. Además, 20 años después, PatchGuard hace que esta solución sea imposible.

Por el contrario, esta versión de BugChecker, al interceptar llamadas a KdSendPacket y KdReceivePacket en el kernel, se presenta a la máquina depurada como un segundo sistema que ejecuta un depurador de kernel externo, pero, en realidad, todo sucede en la misma máquina. Normalmente esto se logra reemplazando KDCOM.DLL (que es el módulo que implementa la comunicación por cable serie para la API KD en Windows) e iniciando el sistema en modo de depuración de kernel. Este enfoque (inspirado en VirtualKD) reduce la complejidad y aumenta la estabilidad y compatibilidad (y portabilidad, por ejemplo, a ARM - y modularidad, ya que las capacidades de depuración de bajo nivel se implementan detrás de KdXxxPacket y podrían reemplazarse con una implementación personalizada). Además, la presencia de un depurador de kernel en el arranque (aunque "falso") hace que Windows deshabilite PatchGuard.

Por el momento, BugChecker requiere un teclado PS/2 para entrada y un framebuffer lineal para escribir su salida. Tenga en cuenta que el teclado incorporado de muchos portátiles modernos sigue siendo PS/2.

Características

  • Soporte para Windows XP a Windows 11, x86 y x64, y kernels SMP. Soporte para procesos WOW64 en x64.
  • Integración de QuickJSPP, que es un puerto de QuickJS a MSVC++. Antes de llamar a QuickJS, BugChecker guarda el estado de la FPU (en x86) y cambia a una pila expandida de 128KB.
  • Los comandos aceptan expresiones JS. Por ejemplo, "U rip+rax*4" y "U MyJsFn(rax+2)" son comandos válidos. Se pueden definir funciones personalizadas en la Ventana de Scripts. Las variables de registro de la CPU se declaran automáticamente como variables de ámbito global por BugChecker.
  • Soporte para archivos de símbolos PDB. Los archivos PDB se pueden especificar manualmente o Symbol Loader puede descargarlos desde un servidor de símbolos.
  • El código JavaScript puede llamar a las siguientes funciones asíncronas: WriteReg, ReadMem, WriteMem.
  • Los puntos de interrupción pueden tener una condición JS: si la condición se evalúa como 0, no se produce "breakin". Esto permite establecer "Logpoints" y puntos de interrupción que pueden cambiar el flujo de ejecución.
  • La ventana de registro muestra los mensajes enviados al depurador de kernel (por ejemplo, mensajes DbgPrint).
  • Ventana JavaScript con resaltado de sintaxis.
  • La tecla de tabulación permite, dados pocos dígitos, recorrer todos los números hexadecimales en pantalla o, dados pocos caracteres, recorrer todos los símbolos que contienen esos caracteres.
  • EASTL y las corrutinas de C++20 hacen que crear nuevos comandos sea muy sencillo. ¡No dudes en enviar tus pull requests!

Videos (Youtube)

Demostración de BugChecker en Windows 11 22H2, dentro de VirtualBox 7.0.4. Se escribe una condición de punto de interrupción en JavaScript que cambia el flujo de ejecución en un hilo de modo usuario.

Ver el video

BugChecker ejecutándose en un entorno muy limitado: una Raspberry Pi 4 (4GB RAM), a través de QEMU en Windows XP (512MB RAM). Se usa un punto de interrupción para registrar todas las llamadas SYSENTER del modo usuario al kernel. El índice de servicio se almacena en un array de JavaScript.

Ver el video

Ejecutando BugChecker directamente sobre el hardware, en un HP Pavilion Dv2000, un PC antiguo con teclado PS/2. El sistema operativo es Windows 7 Home 32 bits.

Ver el video

Instrucciones de instalación

Introducción

Asegúrate de que Secure Boot esté desactivado al instalar y usar BugChecker. Normalmente puedes volver a habilitarlo más tarde. Si usas VMware o VirtualBox, Secure Boot se puede desactivar en la configuración de la máquina virtual.

Considera también habilitar el menú de arranque heredado, si usas Windows 8, 10 u 11, usando el comando: bcdedit /set "{current}" bootmenupolicy legacy. Permite una experiencia más fluida durante el arranque, permitiendo seleccionar la opción de arranque de BugChecker y deshabilitar la aplicación obligatoria de controladores al mismo tiempo.

Instrucciones

El primer paso es iniciar Symbol Loader:

Symbol Loader

Si es necesario, desactiva los controladores de pantalla haciendo clic en el botón "Disable Display Drvs". Lo mismo se puede lograr en el Administrador de dispositivos de Windows. Una vez que los controladores de pantalla se han desactivado, permanecen desactivados incluso después de reiniciar el sistema. Se pueden volver a habilitar en cualquier momento cuando no se use BugChecker.

La cuestión aquí es que BugChecker necesita un framebuffer lineal con un formato de 32 bits por píxel para dibujar su interfaz. Al desactivar los controladores de pantalla, Windows descarta la aceleración de hardware para dibujar su interfaz de usuario y vuelve al modo de compatibilidad VGA. Si se ejecuta en hardware real o VMware, se deben desactivar los controladores de pantalla. Si se ejecuta en VirtualBox, se deben desactivar los controladores de pantalla o configurar el ajuste vm_screen en BugChecker.dat, como se describe a continuación. Si se ejecuta en QEMU, no es necesario desactivar los controladores de pantalla, pero asegúrate de especificar el dispositivo de visualización "-vga std".

Ten en cuenta que el modo de compatibilidad VGA podría limitar la resolución máxima de la pantalla. VMware está limitado a una resolución máxima de 1152x864. QEMU con el dispositivo de visualización "-vga std" no sufre esta limitación.

Descargar herramienta