一般说来,调速驱动程序分为两种:
1.存在PDB文件的调试:
这里的PDB文件其实就是调试符号文件,假如我们调试的这样的文件,我们可以再windbg中使用 :bp 驱动名!DriverEntry,这个时候当加载驱动的时候,程序就会断在入口了。
2.没有PDB文件的调试:
在调试别人的驱动程序时,也就是自己只有bin,并且在这个bin没有PDB文件,以及你没有它的代码。这种情况下,就出现问题了。好在我们可以查看SXE LD 驱动的名字.sys来下断,这个时候,只要加载驱动,马上就能别windbg识别,然后我们可以使用:lmvm 驱动名,查看驱动在内存的相关信息,利用得到的信息下断点。
这个时候下的断点:bp base+poi(poi(base+3c)+base+28),这里poi是取值的意思。
下边我以调试XueTr.sys的驱动作为说明:
先设置好异常事件:
2。运行后,触发了异常:
3.查看XueTr.sys的相关信息,记录下起始地址,利用bp b22b9000+poi(poi(b22b9000+3c)+b22b9000+28)下断,断下后,即是驱动的入口了。