驱动调试中怎么样让windbg停在DriverEntry
2016-04-25 19:48
155 查看
一般说来,调速驱动程序分为两种:
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)下断,断下后,即是驱动的入口了。
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)下断,断下后,即是驱动的入口了。
相关文章推荐
- MyEclipse连接MySQL
- nyoj 44 子串和
- sitemesh技术的应用
- ABP源码分析三十七:ABP.Web.Api Script Proxy API
- [GDOI2016模拟04.25总结]
- HDOJ1175(BFS)
- 图文混排 和 正则表达式
- 智能交通
- ZOJ-3936(Apples and Ideas)
- caption标签,为表格添加标题和摘要 summary a mail
- JAVA内存模型
- 基于epoll封装的事件回调miniserver
- 个人博客总结7
- Codeforces Round #347 (Div. 2) C. International Olympiad(求第一次出现这种数字结尾的是哪一个年份)
- Android热修复技术链接收集
- IO流学习
- Masonry介绍与使用实践(快速上手Autolayout)
- mips 的内存映射问题
- HDU 1166 敌兵布阵
- leetcode 345Reverse vowels of a string