vitoplantamura/BugChecker
FreeSoftICE-like kernel debugger for Windows 11
About vitoplantamura/BugChecker
BugChecker is a SoftICE-like kernel and user debugger for Windows 11 (and Windows XP as well, supporting versions from XP to 11, both x86 and x64). Unlike traditional kernel debuggers, it does not require a second machine; instead, it leverages the internal and undocumented KD API in NTOSKRNL to present itself as a second system running an external kernel debugger on the same machine. This is achieved by intercepting calls to KdSendPacket and KdReceivePacket, typically by replacing KDCOM.DLL and starting the system in kernel debugging mode. This approach (inspired by VirtualKD) lowers complexity, increases stability and compatibility, and disables PatchGuard by appearing as a debugger at boot time. BugChecker features JavaScript integration via QuickJSPP, allowing commands to accept JS expressions, custom functions in a Script Window, and breakpoints with JS conditions for logpoints and flow control. It supports PDB symbol files, WOW64 processes, and SMP kernels. Currently, it requires a PS/2 keyboard for input and a linear framebuffer for output.
Key Features
Pros & Cons
- No need for a second machine, reducing hardware requirements
- High compatibility across Windows versions and architectures
- JavaScript scripting enables flexible breakpoints and automation
- Open source and freely available on GitHub
- Uses stable KD API instead of hooking kernel functions
- Avoids PatchGuard by faking debugger presence at boot
- Currently requires a PS/2 keyboard, not compatible with USB keyboards
- Requires a linear framebuffer display for output, no GUI
- May have limited hardware compatibility due to specific requirements