WinDBG+VMware双机内核调试环境搭建
windows驱动开发和调试环境搭建

Windows驱动开发和环境搭建【文章标题】: Windows驱动开发和调试的环境设置【文章作者】: haikerenwu【使用工具】: VC6.0,VMware6.0.3,Windbg【电脑配置】: 惠普笔记本xp sp3(一)VMWare安装篇VMWare的安装一路Next即可,关于其序列号,百度一下就能找到,虚拟机安装完成之后,需要安装操作系统,我在虚拟机中安装的是windows xp sp2系统。
点击“文件”----“新建”----“虚拟机”进入新建虚拟机的向导,配置虚拟系统参数选择虚拟系统文件的兼容格式(新手推荐选择默认选项)按照默认设置继续点击下一步,选择好您需要的操作系统,此处我选择的是Windows XP Prefessional。
设置虚拟机名称和虚拟操作系统安装路径,我单独空出来一个F 盘,将虚拟机和虚拟操作系统全部装在该盘。
配置网络模式(推荐选择NA T,一般主机不用做任何的设置虚拟机就可以利用主机上网)。
配置虚拟磁盘的容量。
在这里可以直接单击完成,来完成基本操作设置,磁盘默认空间是8GB,用户可以根据自己的实际使用情况来调整大小,也可以自定义分区。
操作完成之后,在“VM”菜单下有个“setting。
”菜单,点击此菜单,在CD-ROM中选择合适的选项,我使用的是Use ISO image 选项,将我的xp sp2操作系统的ISO映像路径设置好,安装操作系统。
点击ok之后,启动虚拟机,即开始安装操作系统,安装过程跟普通装机过程相同。
安装完成之后,启动操作系统,然后在VM菜单下点击“Install VMWare Tools”,把虚拟操作系统的驱动装好。
(二)VMWare设置篇虚拟操作系统安装完成之后,就是设置该系统为Windbg双机调试做准备。
关闭虚拟操作系统,添加一个虚拟串口,因为我的电脑是笔记本,现在的笔记本很少配置串口,所以要虚拟一个串口,这个过程由VMWare完成,图解如下。
使用VMware搭建双机环境

使用VMware搭建双机环境使用VMware搭建双机环境,主要的问题是需要给每台虚拟机配置相同的共享的磁盘。
参考网上的说明,在VMware 5.5下做了些尝试,成功搭建了双机环境,并安装ZTE-HA、VCS (VERITAS Storage Foundation)等双机软件成功。
以下是具体的过程。
1、安装两个虚拟机,如两个Windows 2000 Server的操作系统;注意:建议安装两个操作系统,不要使用Clone。
我使用Clone安装过,虽然共享磁盘可以双机都可识别,但VCS双机软件在配置过程中出现问题。
2、在一台虚拟机上,增加一块硬盘(即最终的共享盘):单击“Advanced”按钮,将“Virtual device node”改为“SCSI 2:0”。
注意:如果不改,那么在双机软件的配置过程中将出现总线冲突,无法使用共享盘的情况(大约类似于SCSI设备的ID冲突);也不建议使用SCSI 1:0,我在实际的使用中发现使用SCSI 1:0后,本地盘ID和共享盘有冲突,一旦共享共享盘,本地盘也要被共享,导致失败。
3、在另一台虚拟机上同样增加一个硬盘,只是需要使用已存在的虚拟盘:同样需要设置“Virtual device node”为“SCSI 2:0”。
4、修改虚拟机目录下的配置文件Windows 2000 Server.vmx,在其中加入两行:scsi2:0.shared = "TRUE"disk.locking = "FALSE"增加后大约的配置如下:两台虚拟机的配置都需要修改。
修改后分别启动两台虚拟机,此时会提示:不用理睬,继续启动,之后即可在两个系统中都能看到共享盘。
后续安装双机软件即可搭建双机环境了。
Windows 内核驱动调试环境搭建及调试步骤

Windows 内核驱动调试环境搭建及调试步骤本文,系09年笔记记录整理,当时只有大概的步骤,最近又搭建环境,顺道比较详细的整理一下,以供自己备查。
较之前的笔记,只是DDK和VMWARE的版本增高了,基本步骤还是大差不差。
注意:如果是初次搭建环境,请大概浏览完全篇后,再参照本文搭建环境。
一、工具描述主机:XP sp3虚拟机:vmware9.0 +XP sp3WinDBGDDK:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso注:主机:hostOS虚拟机:guestOS代码系《windows驱动开发技术详解》二、具体步骤guestOS设置:添加串口:VM->settings->hardware->add选择 serial设置如下图所示:修改guestOS的boot.ini文件在文件最末行添加如下内容:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com2 /baudrate=115200 debugport=com2,要根据你虚拟出来的串口号来设置。
本人电脑里设置的是COM2,如上图所示。
注意:1、boot.ini 文件在C:根目录下,修改booti.in文件时,需要设置文件夹选项,详见下图的标注。
2、波特率进入系统(虚拟机),修改串口的波特率为115200,默认建立的时,波特率是9600。
电脑右键->属性->硬件->属性管理,在弹出的框框里找到COM2修改即可。
虚拟机(guestOS)上的配置基本完成。
hostOS配置:安装DDK版本:6.1.6001.18002.081017-1400_wdksp-WDK18002SP_EN_DVD.iso,在微软网站可以下载到。
使用WinDbg和虚拟机调试Windows驱动程序教程

使用WinDbg和虚拟机调试Windows驱动程序教程(转)驱动调试攻略(WinDbg)驱动调试是一个系统级调试方式,所以调试工具用WinDbg是最佳选择。
驱动调试一般情况下,需要两台电脑进行。
一台作为主机进行驱动调试,另一台作为目标机进行驱动安装。
当然如果没有多余的电脑,我们可以安装VMware模拟系统调试(虚拟机)。
只是对电脑的配置要求比较高。
本文介绍使用WinDbg及VMware进行调试的具体设置及方法。
这些资料在网络很难找到,笔者也是吸取了他人很多宝贵意见才完成的,供大家学习讨论。
其实用SoftIce可以单机调试驱动,但是有个问题就是在SoftIce启动前驱动可能已经启动了。
VMware Support 中说,自4.0.18.0 版本之后的WinDbg 都支持了通过pipe 来进行调试,不过微软对此并没有任何说明。
所以,在VMware中虚拟被调试的系统,然后通过VMware虚拟一个com端口。
使用这个虚拟的端口,就可以用WinDbg 进行调试了。
具体步骤如下:1. 安装和设置WinDbg,VMware首先,请到微软官方网站/whdc/devtools/debugging/default.mspx,下载最新版本的WinDbg工具,建议使用6.0以上版本的WinDbg做为调试工具。
VMware也可以在网站上找到,当然使用高版本比较好。
安装过程比较简单,就不在此多做介绍。
唯一要注意的是,安装完虚拟机后,请在VMware主菜单“VM”中选择“Install VM Tools…”,完成系统驱动文件的安装。
安装完这两个软件后,请在VMware中安装跟你的电脑版本相同的操作系统。
例如:你的电脑安装的是WindowsXP Professional,那么最好在Vmware中安装相同版本。
至少是相同的系统,Windows XPßàWindows XP、Windows 2000ßà Windows 2000。
windbg 驱动调试

本文主要记录个人安装VMware+Windgb+Win7内核驱动调试的笔记。
一、安装环境1主机:Windows Vista Bussiness2虚拟机:VMware 73GUestOS: Win74Windbg: 6.11二、虚拟机配置打开相应vmware 虚拟机上的“Virtaul Machine Settings“2.“Hardware”选项中—-> 点击“Add”添加一个串口设备SeriallPort .3.”Next”,在“Serial Port”里选中“Output to named pipe”4.”next”,然后如下设置:5.确定之后,回到如下界面,在右脚”Virtual Machine Settings”页面时,在“I/O Mode”里选中“Yield CPU on poll“6. Ok之后就设定完毕了。
三、Windbg设置下载地址:Windbg安装之后,设置一个桌面快捷方式,然后,右键->属性,在Target中的引号后面添加如下:-b -k com:pipe,port=\\.\pipe\com_1,resets=0或者是:-b -k com:port=\\.\pipe\com_1,baud=115200,pipe 【二者似乎皆可】四、GuestOS设置Vista和XP不同, 没有boot.ini文件, 需要用bcdedit进行启动设置。
1. 在administrator权限下, 进入command line模式, 键入bcdedit命令, 会出现以下界面:2. 然后, 设置端口COM1, baudrate为115200 (除COM1外, 也可以用1394或USB. 1394用起来比COM口快多了, 当然前提是你需要有1394卡及其驱动. 很恶心的是Vista不再支持1394的文件传输协议, 但是用windbg双机调试还是可以的)命令为:bcdedit /dbgsettings {serial [baudrate:value][debugport:value] | 1394 [channel:value] | usb }3.接着, 我们需要复制一个开机选项, 以进入OS的debug模式命令为:bcdedit /copy {current} /d DebugEntyDebugPoint 为选项名称, 名字可以自己定义. 然后复制得到的ID号.4. 接着增加一个新的选项到引导菜单bcdedit /displayorder {current} {ID}这里的{ID}的ID值是刚生成的ID值.5. 激活DEBUG : bcdedit /debug {ID} ON这里的{ID} 的ID值还是刚才的ID值.6. 命令执行成功后, 重新启动机器.或者更简单的图形界面设置:在msconfig界面中,选Boot,再选Advanced options,在选择Debug、Debug port、Baud rate都打上钩。
WinDGB双机调试

假设某台计算机在运行某个驱动时蓝屏(运行代码在WinDbg教程\代码文件夹中)。
如下图:这时我们可以通过WinDGB进行双机调试。
首先选择两台电系统之间的通信方式,WinDGB支持串行口、1394、USB三种方式。
选择好通信方式后,就可以将合适的电缆插到两台系统的相应端口上。
然后在主机上启动WinDBG,在其―File(文件)‖选择―Kernel Debug(内核调试)‖,或者按―Ctrl+K‖。
如下图:在内核调试对话框中选择要与通信电缆和目标机器一致的类型和参数,然后点击―确定‖。
WinDBG进入等待壮态,等待来自目标系统的调试数据。
如下图所示:连接到目标系统后,第一步是使用!analyze扩展命令。
该扩展执行大量的自动分析,分析结果在调试器命令窗口中显示。
若要数据的全冗长模式显示,还应该使用-v选项。
这里输入!analyze –v命令,如下图所示:输入!analyze –v命令后的显示:kd> !analyze -v******************************************************************************** Bugcheck Analysis ********************************************************************************SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M (1000007e)This is a very common bugcheck. Usually the exception address pinpointsthe driver/function that caused the problem. Always note this addressas well as the link date of the driver/image that contains this address.Some common problems are exception code 0x80000003. This means a hardcoded breakpoint or assertion was hit, but this system was booted/NODEBUG. This is not supposed to happen as developers should never havehardcoded breakpoints in retail code, but ...If this happens, make sure a debugger gets connected, and thesystem is booted /DEBUG. This will let us see why this breakpoint ishappening.Arguments:Arg1: 80000003, The exception code that was not handledArg2: f8d55578, The address that the exception occurred atArg3: f8afdb90, Exception Record AddressArg4: f8afd88c, Context Record Address//上面给出了相应的四个参数,第二列是代号,第三列是解释。
windbg双机调试的配置方法(1394版)

windbg双机调试的配置方法(1394版)学习各种外挂制作技术,马上去百度搜索"魔鬼作坊"点击第一个站进入、快速成为做挂达人。
昨天在Berry的指导下开始了双机调试之旅(两台笔记本)准备的材料:两台都有1394的机器,我这里用的是笔记本,一根1394线(1394线有3种,4对4,4对6,6对6,一般笔记本都是4口的,所以我买了一根4对4的线,市场价大概30元吧,也许还有更便宜的)下面,被调试机称target,调试机称Host。
target机配置:2000-2003的配置:在boot.ini里面加一行:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP1394"/noexecute =optin/fastdetect/debug/debugport=1394/channel=20红颜色的是关键,前面的根据各人的电脑自己配置,网上配置虚拟机调试的教程很多,不多说了,注意我这里最后的channel是20,然后禁用1394(2000必须禁用,xp以上不需要,系统会在进debug后自己禁用),重启,选这个选项进系统host机配置:安装windbg(最好是用微软的安装包安装,不是copy),然后把1394线拔了(这里我搞了半个小时,最后快放弃了才成功的关键点,也许是我的host机器太老了,1394设备太烂,插了线就不认),然后打开windbg,按Ctrl+K,选择1394,填入20(这里的20是上面的channel),然后确定,这时候windbg会自动安装一个虚拟的1394的驱动,然后会wait to connect,这时候插上线,就可以调试了。
以后可以在windbg的快捷方式里面填上启动选项-k1394:channel=20,symlink=instance这样可以快速启动1394调试1394的调试速度很快,双机调试确实很爽,呵呵注意,vista以上的启动选项比较复杂,不能通过改boot.ini来配置在上篇的中我们介绍了API编程的基础知识和一些比较“酷”的API调用,这期我们将配合专题介绍关于注册表编程的API函数及其应用实例,使读者朋友何能够将前面学到的注册表知识推广到VB编程中,继续向VB高手迈进(路漫漫……)。
windbg 内核调试原理(一)

windbg 内核调试原理(一)windbg 内核调试什么是 windbg 内核调试?•windbg 是一款强大的调试工具,可以用来调试 Windows 操作系统及其应用程序。
•内核调试是 windbg 的一个功能,用于调试操作系统内核,可以帮助开发人员定位和解决系统崩溃、死锁、性能问题等。
内核调试原理1.内核调试利用 Windows 的调试接口和调试驱动程序实现。
2.它通过在目标系统中安装一个调试驱动程序,与 windbg 配合使用,来进行调试。
3.此外,还需要使用串行线缆或网络连接将目标系统和调试主机连接起来。
准备工作•在进行内核调试之前,需要安装 windbg 和调试符号文件。
•调试符号文件包含了操作系统的调试信息,是进行调试的必要文件。
配置目标系统1.在目标系统中配置调试选项:•打开“控制面板”,找到“系统和安全”。
•点击“系统”,然后选择“高级系统设置”。
•在“高级” 选项卡下,点击“设置” 按钮。
•在“启动和故障恢复” 对话框中,点击“设置”。
•将“调试信息” 设置为“完全内存转储”。
2.进行启动选项配置:•打开“命令提示符”,输入以下命令:bcdedit /debug onbcdedit /dbgsettings serial debugport:1 baudrate:115200•这样将启用调试,并配置串行端口为 COM1,波特率为 115200。
配置调试主机1.在调试主机上打开 windbg:•首先,确保已经安装了 windbg。
•然后,在开始菜单中找到 windbg,并打开它。
2.配置串口调试选项:•点击“文件” -> “选项” -> “调试选项”。
•在“调试选项” 对话框中,选择“串行” 选项卡。
•选择正确的串行端口和波特率(与目标系统配置一致)。
连接目标系统和调试主机•使用串行线缆或网络连接将目标系统和调试主机连接起来。
开始内核调试•在 windbg 中,点击“调试” -> “启动调试”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WinDBG+VMware双机内核调试环境搭建
因为接下来要写个文件过滤驱动,要有个内核调试环境,昨天天搭了一下,比较简单,网上已有详细步骤。
vmware中装个winxp,暂且称为SlaveOS吧。
相应的我们主系统成为MasterOS。
我的步骤如下:
1.先在MasterOS上装WinDbg。
在桌面建一个快捷方式,修改程序启动参数。
具体操作为右键WinDBG快捷方式-》属性。
现在的目标内容为(假设):"E:\Program Files\Debugging Tools for Windows (x86)\windbg.exe",在它后边加上-b -k com:pipe,port=\\.\pipe\com_1,resets=0,注意,红字部分加在引号外面。
确定。
2.MasterOS设置结束,接下设置vmware虚拟机。
设置虚拟机需要在SlaveOS关闭的情况下进行。
打开虚拟设置,增加一个“Serial Port",如图1:
图1
3.下一步选择”Output to named piped".如图2:
图2
4.虚拟机配置完毕,接下来启动SlaveOS进行配置。
打开虚拟机c:\boot.ini。
在文件末尾加上:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=com_1 /baudrate=115200
保存后重启。
启动菜单会新增一个debug的菜单。
如图3:
图3
5.在上述界面按下上下箭头键。
回到MasterOS,通过快捷方式打开WinDBG,此时WinDBG会出现如下提示:
Microsoft (R) Windows Debugger V ersion 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.
Opened \\.\pipe\com_1
Waiting to reconnect...
回到虚拟机,按下回车,windgb会显示连接信息。
如图4,此时在kd>后面输入命令g,SlaveOS 就会进入Debug模式了。
图4
over~~
ps.以上对MasterOS,vmware,SlaveOS的配置顺序无关。