首页
社区
课程
招聘
[求助]请问大家都是什么方法调试某P驱动的
发表于: 2013-7-30 13:32 5889

[求助]请问大家都是什么方法调试某P驱动的

2013-7-30 13:32
5889
如题:内容包括内容有
1. 操作系统版本(实体机和虚拟机)
2. 调试工具
3. 调试对象
4. 调试方法

小菜目前调试的环境是:
1. 操作系统版本:实体机和虚拟机版本一样win7sp1build7600
2. 调试工具:实体机上vc9.0, windbg, IDA,虚拟机VM8.0,DriverMonitor,DebugView,Ollydbg
3. 调试对象:DXF,TXXsafe.sys
4. 调试方法:虚拟机debug状态开启,windbg开启,连接成功。虚拟机先用DriverMonitor加载自己的驱动PassXX.sys,驱动设置LoadImageRoutine拦截TXXsafe.sys加载。用DriverMonitor加载TXXsafe.sys,进入LoadImageRoutine,这里放了断点切换到实体机windbg,读取TXXsafe.sys的基址,修改KdDisableDebugger,KdSendPacket,KdReceivePacket。但目前我没能成功。

请问两个驱动用DriverMonitor加载会不会有问题。

不知道大家都用什么方法,我尝试过用DriverMonitor加载自己的驱动PassXX.sys,然后直接开启DXF,让KdDisableDebugger直接返回,虚拟机就几乎不动了,在真机的windbg中ctrl+break是可以断下来的,但在虚拟机中根本不能操作,有时能动一下鼠标,DXF的界面也跑不起来。

因为觉得windbg用起来比较顺手,有些单机调试起来没这么方便,就想双机来调试会比较方便。现在卡在windbg没法双机调试,后面的就不用说了,看了这么多,都没能实践下来。

求指导

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 167
活跃值: (190)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
葵花宝典不是说了吗  欲练此功必先自宫  先把自己的内核自宫了再说 XD
2013-7-30 13:45
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
改内核文件
KdDisableDebugger 直接xxoo干掉.我就不信tp继续调用此函数.
2013-7-30 17:17
0
雪    币: 68
活跃值: (104)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
没用的 它调用KdDisableDebugger  要查看结果的  不成功 就是 死循环 少年 光函数头C3是不行的
2013-7-30 17:23
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
我勒个去,谁叫你直接ret的,

xor eax,eax
ret啊,

中间最好加一些花指令,搞死xx
2013-7-30 17:28
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
中间必须加一些花指令,目测上面的方法会很快和谐...
2013-7-30 17:29
0
雪    币: 274
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
问个问题:大家为撒老是双机   单机0环难道不行吗?
用虚拟机 不用担心blue
2013-7-30 17:52
0
雪    币: 217
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
只处理 KdDisableDebugger 绝对不行,它还要判断 KdEnableDebugger,如果你把  KdEnableDebugger 设置为false,很遗憾很多内核调试函数都会根据这个值来转跳。另外,它还会直接用int 2dh让你断开,还会把ntoskrnl引入表中kdcom.dll的KdSendPacket,KdReceivePacket hook掉。。。

对了,还会直接处理KiDebugRoutine。。。
2013-8-1 09:37
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
能否将drivermonitor发到我的邮箱 597181327@qq.com
2014-1-21 23:04
0
游客
登录 | 注册 方可回帖
返回
//