首页
社区
课程
招聘
[求助]一个驱动如何HOOK用户动ReadFile的IO请求?
发表于: 2008-10-14 16:44 8035

[求助]一个驱动如何HOOK用户动ReadFile的IO请求?

2008-10-14 16:44
8035
这么一个驱动(光驱的),在IRP_MJ_READ例程中简单地调用了IofCallDriver来转交任务给底动驱动,那么这个驱动在用户层调用ReadFile之后何时何地才有机会得到读取的数据并加以处理,然后返回给ReadFile的调用者呢?
我确信这个驱动是在ReadFile返回之前对所读到的数据进行的处理。

很是迷惑

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
给IRP设置完成例程
2008-10-14 20:24
0
雪    币: 497
活跃值: (58)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
3
光驱的文件系统的read例程hook
或者直接挂到光驱的文件系统上
2008-10-15 00:54
0
雪    币: 431
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个驱动不是我写的,我没有源码,我是在调试这个驱动,现在我不知道在什么地方下断。
另外,也没发现这个驱动有IoSetCompletionRoutine的调用

这个驱动是在系统启动时加载的,所以我没办法跟踪DriverEntry,在DriverEntry里面,它只对少数几个IRP_MJ_××××例程入口做了特别初始化IRP_MJ_PNP,IRP_MJ_POWER,IRP_MJ_INTERNAL_DEVICE_CONTROL和IRP_MJ_DEVICE_CONTROL,其它大部大部分IRP例程入口都指向一个简单的函数,这个函数简单地调用了IofCallDriver函数。
然而,奇怪的是,我自己写了一个调用ReadFile的测试程序来测试它,发现,又走不到这个不知道从哪儿来的简单的IRP_MJ_READ例程里面去。
请问这种情况到底是怎么回事?
2008-10-15 14:35
0
雪    币: 431
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
时隔N久之,再次翻到这个贴子,感受竟然大不一样
对于光驱的读写,只有光驱之上的文件系统(如CDFS,UDFS等)的IRP_MJ_READ例程才会在ReadFile时被触发(如果支持FastIo也未必)
其下的设备驱动程序,读写是通过IRP_MJ_INTERNEL_DEVICE_CONTROL例程封装SCSI命令来完成的。
2009-5-5 22:01
0
雪    币: 267
活跃值: (24)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
谢谢!
2009-5-6 09:25
0
游客
登录 | 注册 方可回帖
返回
//