windbg调试虚拟机串口管道

一、先介绍一下被调试的虚拟机系统环境:

虚拟机:vmware workstation 10.0版本

虚拟机操作系统: Microsoft windows xp professional 2002 service pack3

cpu:2.8GHz,2.64GB内存

二、这个没有直接关系。做个笔记而已。

1.在XP系统中,创建了一个first.c文件

测试代码如下:

#include <ntddk.h>

void DriverUnload(PDRIVER_OBJECT driver)
{
	DbgPrint("first:Our driver is unloading....\r\n");
}

NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
	DbgPrint("first:Hello,my salary!");
	driver->DriverUnload = DriverUnload;
	return STATUS_SUCCESS;
}

  

2.添加无后缀makefile文件

内容如下:

!IF 0
Copyright (C) Microsoft Corporation, 1999-2002
Module Name:
	makefile.
Notes:
	DO NOT EDIT THIS FILE!!! Edit ./sources. if you want to add a new source
	file to this component. This file merely indirects to the real make file
	that is shared by all the components of Windows NT (DDK)
!ENDIF
!INCLUDE $(NTMAKEENV)\MAKEFILE.DEF

  

3.添加一个SOURCES无后缀文件

内容如下:

TARGETNAME=first
TARGETTYPE=DRIVER
SOURCES=first.c

  

4.windows driver kits---WDK 6001.18001--Build Environments--windows xp---Launch Windows XP x86 Checked Build Environment

5.在控制台窗口输入build命令,生成sys文件。

6.使用SRVINSTW.EXE安装first.sys驱动。(选项为设备驱动)

=============================================================================================

三、开始设置被 调试机(虚拟机和xp系统的设置)

设置中添加一个串行端口:使用命名管道。

设置参数如下:

使用命名的管道:

参数1:\\.\pipe\com_1

参数2:该端是客户端

参数3: 另一端是应用程序

如图:

在虚拟机XP系统中,把隐藏的boot.ini文件调出来,

修改如下:

[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect 
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug/debugport=com1 /baudrate=115200

  

其实就是添加最后一行的内容.再重启系统时,就会出现调试选项

 虚拟机的设置到此完成.

接下来是调试机(物理机系统):

window 10 专业版 64位

windbg 安装后,复制了一个快捷图标到桌面了。在属性目标中设置了参数:

"D:\Program Files\Debugging Tools for Windows (x64)\windbg.exe" -b -k com:port=\\.\pipe\com_1,baud=115200,pipe

这样就不需要每次去控制台输入命令这么麻烦的操作。

 出现了这个很蛋疼的错误。

百度了快半天。能找到的就几个回答。。看了更蛋疼。。

 

意思就是,可能是已经有其它的com_1管道在。创建的不仅仅是一个com_1.

但是我就这个xp系统有添加串口管道。其它都没有。。

我又重新的开始从头到尾的操作一遍。。windbg也下载了好几个。。都是这么个提示。。

终于在有一次设置管道串口参数的时候。。我忘记了把:该端是服务器 选择。因为它默认就是,该端是服务器。。我直接设置第三个参数了。然后确定。。

 

选择调试。。

接着运行windbg。。

 

终于成功了。。。。

这是血与泪的教训。。。

呃。。一直黑屏了。。在kd输入g

继续运行。。

最后总结一下,问题其实就出现在参数设置的时候,"该端是服务器"和"该端是客户端"

<<windows内核 安全与驱动>>一书中写到。。请读者随机应变。。随机应变。。。

猜你喜欢

转载自www.cnblogs.com/pady/p/10459584.html