Windbg设置入口函数DriverEntry断点

     Windows驱动程序加载的入口函数为DriverEntry,通过调试该函数,很容易可以找出驱动程序的派遣函数,接着可以调试分析自己感兴趣的IRP。但是,首先,需要在windbg中设置断点,使得驱动程序加载的时候可以执行单步调试。这里有2种办法可以尝试。


     第一种方法,直接通过计算驱动程序的入口地址,下断点即可。比如有些第三方驱动程序,可能会动态加载或者卸载,但是很多时候,再次加载的时候驱动的模块在内存中的地址仍然是保持不变的。

        驱动模块加载后,比如加载 abc.sys,

        (1)输入执行lm命令,查看到该驱动模块的起始和结束地址,如 f891d000 f8923500   abc,起始地址为f891d000 。

        (2)接着输入命令 bp BaseAddress+poi(poi(BaseAddress+0x3c)+BaseAddress+0x28)  对于abc.sys来说,BaseAddress为f891d000 。输入bp命令下载断点即可,下次加载驱动程序的时候进入断点进行单步调试。


     第二种方法,对于一些系统自带的驱动模块,可以在windbg连接上目标调试机后通过bp命令设置断点,比如 bp usbprint!DriverEntry。然后输入F5或者g进一步启动目标调试系统,等到该驱动程序加载的时候,即可执行断点,进行单步调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值