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

虚拟机: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内核 安全与驱动>>一书中写到。。请读者随机应变。。随机应变。。。

windbg调试虚拟机XP系统的更多相关文章

  1. windbg调试虚拟机win7系统

    调试机:win10 1809 虚拟机: win7 windbg属性设置,在目标后面加上紫色字体参数:  "D:\Program Files\Debugging Tools for Windo ...

  2. 虚拟机xp系统中Oracle 10g的安装

    1 安装过程(11步) 2.如果是xp系统可以直接并双击解压目录下的setup.ext,出现安装界面,如下: 3.输入口令和确认口令,如:oracle,点击下一步,出现如下进度条. 注:此口令即是管理 ...

  3. WinDbg调试流程的学习及对TP反调试的探索

    基础知识推荐阅读<软件调试>的第十八章 内核调试引擎 我在里直接总结一下内核调试引擎的几个关键标志位,也是TP进行反调试检测的关键位. KdPitchDebugger : Boolean ...

  4. Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法

    想起自己的windbg配置就转载:eqera的windows内核调试配置,真的是获益良多希望他不会介意我转载他的博客,帮了我很多,记录下来给我也给大家, 其中我主要看的是VMWare的pipe建立,而 ...

  5. WIN764位主机的虚拟机安装的xp系统串口添加

    WIN764位主机的虚拟机安装的xp系统串口添加 我的电脑安装的是64位的WIN7系统,今天为了验证一个问题,需要用到6410开发板,但在安装USB驱动时无法成功安装,估计是S3C6410的USB驱动 ...

  6. VirtualBox安装及使用说明和虚拟机安装XP系统图文教程

    virtualbox是一款开源的虚拟机软件,它能够支持多种操作系统的安装如:Solaris.Windows.DOS.Linux.OS/2 Warp.BSD等系统作为client操作系统,而且最新版本号 ...

  7. VirtualBox虚拟机中安装XP系统

    Windows XP是一款经典的操作系统,同时也是一款很老的操作系统,不过尽管如此,还是有一批用户在使用XP系统,所以发行一些软件的时候还是要测试在XP系统中能否运行,这时候我们就可以借助Virtua ...

  8. 如何在VirtualBox虚拟机中安装XP系统? 转

    关闭VM (windows 7 )的方法, 使用 退出 保持状态 开启VM (windows 7 )的方法, 选择启动 ######Iissue 1 网络连接不上,可以重新初始化 网络连接. #### ...

  9. 内核,配置WinDbg,调试操作系统(双机调试)

    配置WinDbg,调试操作系统(双机调试) PS: 设置双机调试之前,请先安装虚拟机,并且安装好XP系统.这里不做演示.直接设置. 一丶WinDbg的设置 1) 配置WinDbg的环境,在path变量 ...

随机推荐

  1. 从golang-gin-realworld-example-app项目学写httpapi (四)

    https://github.com/gothinkster/golang-gin-realworld-example-app/blob/master/users/routers.go 路由定义 pa ...

  2. C# Array类的Sort()方法

    Array类实现了数组中元素的冒泡排序.Sort()方法要求数组中的元素实现IComparable接口.如System.Int32 和System.String实现了IComparable接口,所以下 ...

  3. 封装和 property方法

    封装其实就是一个类用双下划线把自己的属性或者方法给限制住 不让其他的类直接调用或者修改  必须通过这个类来进行操作,这个类通过双下划线__把自己的属性和方法给限制住了 封装就是私有的过程 把父类中的属 ...

  4. [tools]notepad++当前文件路径不是工作路径

    Time:2015/04/09 描述: 在notepad++中运行lua,工作路径不是当前文件的路径,而是notepad++的安装目录 修改: 把差将中的NppExec --> Follow $ ...

  5. Apache的配置详解

    Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 主站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/s ...

  6. Excel课程表

  7. [UOJ 0034] 多项式乘法

    #34. 多项式乘法 统计 描述 提交 自定义测试 这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入格式 第一行两个整数 nn 和 mm,分别表示两个多项式的次数. 第二行 n+1n+ ...

  8. Nowcoder Girl 初赛 T5

    Nowcoder Girl 初赛第五题 来源 Nowcoder Girl 初赛第五题 题面 \(n(1<=n<=10000)\)件武器,每件武器对于属性有加成,一共五种属性.若使用其中的\ ...

  9. Access用OleDbParameter无法更新数据解决方案

    昨天遇到了一个非常郁闷的问题,这个问题我几乎花了一天的时间才找到了造成问题的症结并解决. 问题是这样,原本一个使用Sqlserver数 据库的系统,我要让它实现Access数据接口,即我可以很方便地把 ...

  10. CXF+JAXB处理复杂数据

    CXF+JAXB处理复杂数据   CXF默认使用JAXB 来实现对象和XML之间的映射.在前面的例子 中,使用CXF发布的Webservice,其方法的参数和返回值都是简单类型. 本文讨论对象复杂性的 ...