Guest debugging
These options are valid in Workstation 6.0+, and should be set in the virtual machine's .vmx file.
- debugStub.listen.guest32 = "TRUE"
- debugStub.listen.guest64 = "TRUE"
If using these options, Workstation prints a message "VMware Workstation is listening for debug connection on port 8832." into the vmware.log file. Start a GDB session (using a copy of your kernel that includes debug information), then:
- target remote localhost:8832
Standard gdb commands work in this mode (e.g. printing memory, backtrace). Note that this is a debug stub attached to the KERNEL, not a userspace program.
Other useful options:
- debugStub.listen.guest32.remote = "TRUE" # Allows debugging from a different computer / VM instead of localhost. # The IP for remote debugging will be that of the host.
- debugStub.listen.guest64.remote = "TRUE" # Same, but for 64-bit code
- monitor.debugOnStartGuest32 = "TRUE" # Breaks into debug stub on first instruction (warning: in BIOS!) # This will halt the VM at the very first instruction at 0xFFFF0, you could set the next breakpoint to break *0x7c00 to break when the bootloader is loaded by the BIOS
- debugStub.hideBreakpoints = "TRUE" # Allows gdb breakpoints to work
- bios.bootDelay = "3000" # Delay booting the BIOS code.
基本思路为:
1、修改虚拟机系统对应的vmx文件。添加debugStub.listen.guest32.remote = "TRUE" 和 monitor.debugOnStartGuest32 = "TRUE" bios.bootDelay = "3000"(此地方视具体情况)
2、启动虚拟机,利用IDA附加进程调试,远程端口为8832。