这个问题虽然是比较老了,但是看雪上还有同学提到,在这里做个总结,给像我这样的新手看看。
1)直接修改入口
用c32asm或者其他PE编辑工具,修改开头的几个字节,改成cc,即int 3。这样,驱动加载的时候就会断在这里了。
ps:这种方法对于有校验的驱动可能不太适用。
2)下断IopLoadDriver
这里的EDI其实就是DriverObject。DriverObject+2c就是DriverInit。在这里单步进去就是DriverEntry了。
ps:这种方法下断IopLoadDriver对应的偏移,在不同的操作系统下,会有所不同。不过对应的代码基本上是如下形式:
push reg
call reg+xx
3)sxe ld:module name
sxe ld:hookport.sys
当hookport模块被加载的时候,就触发了一个异常:
得到模块的基地址base:
下断驱动模块执行入口点
bp base+poi(poi(base+3c)+base+28)
ps:此方法可以下断boot型的驱动。