KDVMWARE

Fast kernel debugging of VMWARE virtual machines

Kernel Debugging for VMWARE

System developers, who use kernel debugging for analyzing their drivers or applications, have two options:

For those who decided for the latter option, you need to do these steps to make it working. This way of kernel debugging is quite comfortable. However, VMWARE emulates serial port with all its limitations, including its slow speed. So far, there is no builtin way how to speed the debugging up.

On his webpage, Skywing published a way how to combine VMWARE's internal communication channel, VMWARE-VMX's RPC dispatch hooking and DLL injection to create a fast kernel debugging. My KDVMWARE project has been inspired by Skywing's work, and uses vast majority of his know-how. The aim of my project is not to publish his work under different name, but rather to make kernel debugging configuration easier and more comfortable, especially when there are many virtual machines used, with various operating systems. Also, I wanted to summarize configuration of various guest operating systems.

Components

KDVMWARE consists of three components:

The following picture explains how the entire system works:

How KDVMWARE works

How to make it work ?

KDVMWARE has been tested on Windows 2000, Windows XP, Windows 2003 Server, Windows Vista and Windows Seven. It was tested with VMWARE Workstation version 6.5.3 and should work on earlier versions as well. The following table summarizes steps needed to make KDVMWARE work.

Guest side (Windows 2000 or older)

Guest side (Windows XP)

Guest side (Windows Vista and Windows Seven)

Guest side - Network debugging (Windows 8 or newer)

Network debugging doesn't use the fast VMWARE port communication, because it's far faster than default serial port debugging. You will need Windows 8 and also WinDbg of version 6.2.9200.16384 or newer. To setup network kernel debugging, please, follow these steps:

Host side (All operating systems)

For host side, it doesn't matter which operating system are you running inside the virtual machine. Follow these steps:

Download

References