winxp + windbg 无源码调试驱动程序

一、前言

之前在winxp 环境下玩驱动开发的时候,都是使用 __asm int 3 内联汇编来抛出异常让windbg接管并进行调试。

那怎么调试别人的驱动程序呢,之前在win7平台上是可以通过ptach的方式直接patch出int 3断点来进行调试

但我最近发现,如果驱动程序是winxp的运行环境,那么就不可以通过patch的方式进行调试:

实验发现,只要对驱动程序进行了patch(无论patch了哪里),驱动将不会被正常加载

 

像是有自校验之类的。具体原因我也没弄懂,但我找到了另一个调试驱动的方法

二、windbg bu断点调试驱动

操作步骤如下:

1、register

 

2、下 bu 符号断点

windbg break之后输入:

bu firstblood_nopatch!DriverEntry

3、g 继续运行 并且点击 Run

 

 这时windbg就会接管到异常

4、lm o 命令查看被加载的模块 找到驱动程序的基址

 

 

我们可以发现,该驱动模块的起始基址为  0xba368000

之后对照ida 下断点即可运行到指定位置从而进行调试!!!

 

--------------------------------------------------------------| 哪晓岁月蹉跎过,依然名利两无收|--------------------------------------------------------------

posted @ 2023-02-15 23:25  TLSN  阅读(76)  评论(0编辑  收藏  举报