WinDbg下断驱动入口

简介:

这个问题虽然是比较老了,但是看雪上还有同学提到,在这里做个总结,给像我这样的新手看看。

 

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型的驱动。


本文转自einyboy博客园博客,原文链接:http://www.cnblogs.com/einyboy/archive/2012/07/11/2586276.html
目录
相关文章
|
Linux Android开发 C++
嵌入式Linux应用程序调试法----写文件调试程序法
嵌入式Linux应用程序调试法----写文件调试程序法
75 0
|
Linux
编译进内核的驱动是如何工作的
编译进内核的驱动是如何工作的
116 0
编译进内核的驱动是如何工作的
|
Linux
【Linux系统开发】 x210开发板 虚拟驱动创建流程(驱动编译进内核)
【Linux系统开发】 x210开发板 虚拟驱动创建流程(驱动编译进内核)
155 0
|
Linux Android开发
RK3399平台开发系列讲解(内核调试篇)2.51、什么是硬件断点
RK3399平台开发系列讲解(内核调试篇)2.51、什么是硬件断点
180 0
|
Linux
Linux驱动开发 驱动程序的具体编写及出口入口函数解析,printk打印内核信息
Linux驱动开发 驱动程序的具体编写及出口入口函数解析,printk打印内核信息
254 0
|
Linux
树莓派内核驱动编写——添加与调用
树莓派内核驱动编写——添加与调用
483 0
|
Java Linux Android开发
【Android 逆向】Android 进程注入工具开发 ( 远程进程注入动态库文件操作 | 注入动态库 加载 业务动态库 | 业务动态库启动 | pthread_create 线程开发 )
【Android 逆向】Android 进程注入工具开发 ( 远程进程注入动态库文件操作 | 注入动态库 加载 业务动态库 | 业务动态库启动 | pthread_create 线程开发 )
207 0
|
Windows
Windbg内核调试之三: 调试驱动
这次我们通过一个实际调试驱动的例子,来逐步体会Windbg在内核调试中的作用.由于条件所限,大多数情况下,很多人都是用VMware+Windbg调试内核(VMware的确是个好东西).但这样的调试需要占用大量的系统资源,对于和我一样急性子的朋友来说这是不可接受的:).
1305 0