使用Windbg及VirtualPC调试第三方驱动的简明步骤

windbg和虚拟机的远程、网络调试 windbg开启调试 阅读详情

使用Windbg及VirtualPC调试第三方驱动的简明步骤(图)

更新时间:2009-1-3 0:25:18
责任编辑:流火
热 点:

使用Windbg及VirtualPC调试第三方驱动的简明步骤
1,配置VirtualPC
在VirtualPC中安装好GuestOS后,在该GuestOS的设置页面中找到COM1,然后参照图中的数据进行设置
(文字描述:选中Named Pipe,然后输入//./pipe/com_1)
2,配置GuestOS(当前指Win2k,XP,2003的配置方法)
在BOOT.ini中添加
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Windows Server 2003, Standard" /noexecute=optout /fastdetect /debug /debugport=com1 /baudrate=115200
注意分区参数的设置,一般不需要变
3,配置Windbg
D:/Microsoft/windbg/windbg.exe -y D:/localSymbols;srv*D:/localSymbols*http://msdl.microsoft.com/download/symbols -k com:pipe,port=//./pipe/com_1 -Q
在Windbg的快捷方式中,设置[目标]为上面的数据(路径请注意修改)
4,启动OS,建立KD连接
启动GuestOS,选择调试选项并Enter,然后从刚设置好的WIndbg的Shortcut运行Windbg.
Windbg在与GuestOS连接后,会显示相关的连接成功的信息:

Connected to Windows Server 2003 3790 x86 compatible target, ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: D:/localSymbols;srv*D:/localSymbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows Server 2003 Kernel Version 3790 UP Free x86 compatible
Built by: 3790.srv03_sp1_rtm.050324-1447
Kernel base = 0x80800000 PsLoadedModuleList = 0x808a8e48
此时,可以按下Ctrl+Break键,中断OS,这时如果没有相关符号,Windbg会去M$的网站下载符号至D:/localSymbols,所以可能需要等一会儿.
中断后,显示KD>提示符
5,在DriveEntry上下断点
如果你要调试的驱动是Boot,System Start类型,那么你可在Windbg一旦与GuestOS建立KD Connection时,中断OS,将下断点,比如如果你的Driver的
名称是:drvdbgee.sys,可以如此下断:bu drvdbgee+EntryPoint(这个数字可以使用PE工具得到,比如PEID),bu $iment(drvdbgee),对于Windbg此时
也可能会去下载符号所以Prompt处会显示"Busy" :-)
6,载入Driver
手动载入Driver可以使用Kmdmanager.exe,Register->Run,然后在第5个下的断点就会被命中.
7,Do what you want to do
......

附录:
1,Windbg中使用BU下断点时会遍历整个Kernel Modules,然后去下载符号与BU中指定的名称匹配,所以会比较慢,
通常情况下,可以不要设置srv*D:/localSymbols*http://msdl.microsoft.com/download/symbols,在你认为需要下载符号时下载
2,常用的指令和类型及数据
nt!KeServiceDescriptorTableShadow
nt!KeServiceDescriptorTable ( 命令 dds poi(nt!KeServiceDescriptorTable) ,可以查看SSDT表 )
win32k!W32pServiceTable (=nt!KeServiceDescriptorTableShadow+0x10 , 命令 dds win32k!W32pServiceTable,可以查看Win32K的函数表 )
_IMAGE_NT_HEADERS --PE头
_UNICODE_STRING --Unicode string
_DRIVER_OBJECT --驱动对象


3,手动解析某个SSDT是否被HOOK,
dds poi(nt!KeServiceDescriptorTable)+0x4*0x80 ,其中0x4是SSDT入口项的大小,0x80是功能号,
如果没有HOOK,则应显示80827afc f8830300 nt!NtOpenProcess ,被HOOK的情况下显示 80827afc f8830300 drvdbgee+0x1300
4,手动解析某个Win32k的SSDT是否被HOOK,
dds win32k!W32pServiceTable+0x4*(0x114C-0x1000) , 其中是0x114C是功能号,该功能的Stub通常来USER32和GDI32
5,其他常用指令:
d* 显示数据,比如d, da, db, dc, dd
e 修改数据
bp 是下软件断点
u address 是从Address处反汇编
ba 下硬件访问,写入和执行断点
? 是计算表达式,比如 ? 0x4*(0x114C-0x1000)
.reload 载入模块,在有些模块看不到的情况下使用
通常使用的 .reload /f 强制载入模块及符号(模块多时会相当慢) .reload /s 载入模块但是不载入符号
快捷键F5->Run,F7->Run to cursor ,F10->Step over , F11->Step Into , SHIFT+F11 Step out

6,这个配置是与VMware相容的.

设置Pipe

配置Windbg

中断OS

 

双机调试环境搭建 windbg + virtualkd 双机调试环境搭建 阅读详情

相关推荐

KmdManager系统管理工具深度解析与实战应用

KmdManager 不是一个“人人可用”的大众工具,它面向的是那些愿意深入操作系统底层的技术人员:系统工程师、驱动开发者、安全研究员、高级运维。它教会我们的,不只是如何操作某个按钮,而是理解Windows 是如何运作的。当你能看懂服务依赖、读懂 INF 结构、掌握驱动加载机制时,你就不再是被动等待“系统修复”的用户,而是那个亲手修复系统的人。而这,才是真正意义上的“技术自由”。🚀 所以,下次当你面对一台卡顿的机器时,别急着重装系统。

weixin_35732273的博客 606

驱动开发:实现驱动加载卸载工具

驱动程序加载工具有许多,最常用的当属KmdManager工具,如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具,当需要使用驱动时可以拉起自己的驱动,如下将实现一个简单的驱动加载工具,该工具可以实现基本的,安装,加载,关闭,卸载等操作日常使用完全没问题。

微软技术分享 2万+

KmdManager

驱动加载工具,非常方便。 个人一直用它。

WinDbg-虚拟机-双机调试-驱动文件的调试

WinDbg-虚拟机-双机调试-驱动文件的调试_虚拟机驱动备用文件怎么连接-优快云博客

shune_yin的博客 473

KmdManager驱动编程小工具

KmdManager驱动编程小工具 驱动编程必备工具

KmdManager驱动加载程序

该工具能动态加载Windows驱动,无需inf文件支持,该工具对学习windows下的驱动有帮助,希望对各位有所帮助

使用WinDbg和虚拟机调试Windows驱动程序

本文范围和说明: 本文只讲解具体的操作过程,不涉及详细的原理,若要深入了解,请参阅Debugging Help(Debugging Tools For Windows); 文中使用Virtual PC 2007作为虚拟机,但对于Virtual PC的其他版本或者VMWare都适用(VMWare设置命名管道的方式有点小不同)。 WinDbg更新很快,几乎月月有更新,下面是微软网站的下载链

winglet的专栏 5839

H3C最新学习工具大集合

本工具集包含最新的HCL_V2.1.0(H3C云实验室也就是模拟器)及相关手册,VirtualBox-5.1.30.18389-Win.exe,Named Pipe TCP Proxy,securecrtdsd,Wireshark-win64-2.4.1.0和Wireshark-win32-2.4.1.0搭建全方位H3C模拟开发环境 绝对不要错过

利用WinDbg+Virtual PC调试驱动程序

最近在看《Windows驱动开发技术详解》一书,就想搭建一个Windows驱动程序的源码级调试环境。采用的软件主要是WinDbg和Virtual PC 2007,两者都是微软自家的东西,配合起来也相当默契。之前也曾用vmware装了一个Win XP SP3,但由于我的电脑配置一般

1180

sysbench安装(在线&离线)

sysbench下载、安装、编译和异常处理方法

m0_61066945的博客 8751

手把手教你用XC7A35T FPGA搭建低成本机器视觉系统(含开发板选型指南)

本文详细介绍了如何利用AMD(原Xilinx)Artix-7系列中的XC7A35T FPGA芯片,搭建一套低成本的机器视觉系统。内容涵盖从芯片选型深度剖析、开发板(如黑金AX7035B)对比指南,到使用Vivado创建工程、编写图像处理模块(如RGB转灰度),以及资源优化和与上位机(如OpenCV)协同工作的完整流程,旨在为开发者提供一套可实践的高性价比硬件加速视觉解决方案。

beta5的博客 351

使用WinDbg和虚拟机调试驱动程序

环境配置:——对文章作了些文字修改;——加入了使用VMware虚拟机配置的相关内容,而不是只根据个人喜好只写的Virtual PC的配置;——加入了虚拟机操作系统为Vista32的配置情况,Vista64后续有了调试经验后再加上;软件下载:WinDbg:http://www.microsoft.com/whdc/devtools/debugging/default.mspxVirtualPC:http://www.microsoft.com/downloadS/details.aspx?FamilyID=0

scut_su的专栏 1209

HBuilderX结合Android Studio实现Uniapp安卓Apk高效离线打包指南

本文提供了一份详细的Uniapp安卓Apk离线打包实战指南。通过整合HBuilderX与Android Studio,手把手教你搭建本地编译环境、配置原生工程、执行核心打包流程,并分享快速更新资源和排查常见问题的技巧,助你彻底摆脱云端打包的排队依赖,实现高效、可控的应用构建。

weixin_28835551的博客 549

使用Virtual PC进行Windows内核调试的详细过程

使用Virtual PC进行Windows内核调试的详细过程  使用WinDbg进行Windows内核调试通常需要两台计算机,一台是Debuggee,一台作为Debugger,又成为Host。使用Virtual PC可以在同一台电脑上进行内核调试,对于某些调试任务来说还是非常有用的。下面以Virtual PC 2004为例,介绍一下利用Virtual PC进行Windows内核调试的详细过程。

小伟 1478

表格数据学习的图神经网络综述

今天学习一篇发表在中科院一区期刊《ACM Computing Surveys》的综述文章《Graph Neural Networks for Tabular Data Learning: A Survey with Taxonomy & Directions》,该刊主要刊载计算机理论方法领域的系统性综述与教程论文,注重跨学科技术融合研究,最新的影响因子为28.0。本文的目的在于通过学习这篇文章,了解关于表格数据学习点图神经网络一些基础知识。

qq_41009600的博客 798

华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)

华为数通HCIP H12-831多选题

didiplus 1290

使用WinDBG进行双机内核调试

标 题: 使用WinDBG进行双机内核调试作 者: xIkUg时 间: 2006-11-10 21:16 链 接: http://bbs.pediy.com/showthread.php?threadid=34731 详细信息: 使用WinDBG进行双机内核调试 By xikug.xp版本:1.0 作者:xIkUg/RCTxikug.xp [at] gmail [dot] com我

wzwind的专栏 1699

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

2025B卷最新华为OD机试持续收录中 - 真题题库清单,按考点划分(Python / JS / C++ / JAVA / C语言)

算法大师! 3055

WinDbg双机调试

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34123613的博客 166

ROS从入门到精通0-1:教程导读

ROS概念太多太复杂?ROS从入门到精通系列订阅必看

FRIGIDWINTER的博客 1万+

ZeroClaw安装、使用方法详细全解

ZeroClaw 是一个用 Rust 编写的轻量级、高性能、完全自主的 AI 助手运行时框架

洛星核的博客 616

VC 2008 远程调试(msvsmon.exe是什么进程)

msvsmon.exe是什么进程? 远程调试监视器 (msvsmon.exe) 是一个小型应用程序,Visual Studio 与之连接以进行远程调试。在远程调试过程中,Visual Studio 在一台计算机(调试器主机)上运行,远程调试监视器和正在调试的应用程序在远程计算机上运行。 这个文件是安全的 ========================================

haiross的专栏 4259

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HowTo:调试Fastfat(Fat32)文件系统

本文内容: 说一下怎么才能够调试FAT文件系统,其实步骤比较简单,但是当我第一次想要调试它的时候还是一头雾水,不知道从何下手,驱网上一个网友(dreamsity,again,Thank you!)告诉了我一些基本的步骤和注意事项,我按自己的实践整理成了本文,希望对后来者有所帮助。 调试动机: 没有人愿意没事就调着文件系统玩儿,而且,要实现基于源代码级的调试,你得首先要有源代码才行。我是在自己所做的...

weixin_30572613的博客 200

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

windows 驱动开发使用的一些工具

刚开始学驱动开发,有一些工具在网上搜索的太慢了,找来找去还好多收费的,绝大部分工具可以从微软官网下,就是速度比较慢,不过其体积也小, 官方下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/ 也可以用网盘下载,当然工具很少,只是我现在用到的几个,以后还有就继续补充, 链接:https://pan.baidu.com/s/1gfpN1-1MKWxfXzkIQ97UGA提取码:xpwj 1、DebugV...

ShirokoYae的博客 7808

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 工作笔记:TrueCrypt编译记录
下一篇: 2009年100款最佳安全工具(图)
skyremember
博客等级 码龄20年 204粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值