如何使用windbg调试vista,win7

如何使用windbg调试vista,win7,第1张

(1) 执行 Command Prompt 时, 以 Administrator 的身份. 因为只有 Administrator 身份才有权限改变 Boot Config, 其它的 Account 都不行 (即使是具有 Administrator 的权限也不行).

(2) 使用 bcdedit /dbgsettings 查看现在的设定值 ( Default 为 COM1, 115200 ), 可以更改为自行的设定, 命令为 bcdedit /dbgsettings 1394 channel:23 (例: 使用 1394, channel 为 23). 一般不需要修改。

(3) 复制一个开机选项, 命令为 bcdedit /copy {current} /d DebugEntry , DebugEntry为选项名称, 可以自行命名. 然后将结果的 GUID 值复制一份.

(4) 使用 bcdedit /debug {XXXXXXXX-XXXX-XXXX...(GUID)} ON 命令将此选项的 Debug 功能打开. 参数 /debug 后面接的 GUID 值为步骤 (3) 的结果.

(5) 改变开机选项的次序, 命令为 bcdedit /displayorder {current} {XXXXXXXX-XX....(GUID)}. 这一项其实一般不用执行。

(6) 使用 regedit 更改 registry 的项目. 在 HKLM"SYSTEM"CurrentControlSet"Control"Session Manager 的子机码下增加一个 Debug Print Filter 的 Key, 然后在这个 Key 之下增加一个 DEFAULT 的 ValueName, 并且设定此 Value 为 REG_DWORD 的型态, 其值为 0x00000008 这点比较重要,否则你在程序中使用DbgPrint输出的信息,在主机端将看不到。

(7) 重新开机, 就可以使用 Kernel Debug 了!!!!!

1.编译好你的驱动,假设名为ShowSSDT.sys,并把驱动符号文件ShowSSDT.pdb发送到MySysSymbols文件夹下(之前设定的自己的调试符号文件夹)

2.启动虚拟机,选择调试方式进入系统

3.在Windbg中按下Ctrl+Break,输入bu ShowSSDT!DriverEntry(设置断点)回车确认然后输入g命令继续执行

4.把ShowSSDT.sys拖到虚拟机中(也可以通过网上邻居将驱动文件复制过去\\192.168.1.22\C$),在虚拟机系统中启动InstDrv,加载此驱动(也可以使用SRVINSTW.EXE将驱动作为服务安装到系统,然后使用net start 驱动名或是 net stop 驱动名)

5.回到Windbg窗口,如果一切正常的话,你会看到已经中断在ShowSSDT.sys的入口代码处了

接下来,要单步还是要下断点、要继续执行什么的,就全由你来作主了~~

F9设置断点,在按一次则取消断点

F10单步前进,即单步执行,遇到函数(call指令),不会进入函数内部,而是继续函数返回后的工作

F11单步进入,即单步执行,遇到函数(call指令),则进入函数内部继续单步执行

Debug->Break中断调试(只有在中断的情况下才能设置断点)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11361246.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存