(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中断调试(只有在中断的情况下才能设置断点)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)