guobing_xu
驱动牛犊
驱动牛犊
  • 注册日期2007-01-15
  • 最后登录2007-03-26
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:1832回复:10

各位大侠,怎样在磁盘级驱动上,监控IRP_MJ_WRITE获取对应应用程序命!!在线等!

楼主#
更多 发布于:2007-03-12 11:17
  我在磁盘层上挂接了我的驱动,这时候监控IRP_MJ_WRITE,想知道是哪个应用程序产生的这个中断,我用getprocessid获取到的大部分是system,进行数据写入,
我怎么做才能够知道,具体是哪个应用程序在写数据呢。例如:有个程序叫test.exe,它从d盘拷贝数据到e盘,我监控e盘的IRP_MJ_WRITE,我怎么能够准确的知道,
哪个IRP_MJ_WRITE是test.exe,产生的呢,?希望各位大侠多指导,找不到答案郁闷阿!!!那位可以指导的或交流的QQ:9984022,
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-03-20 10:18
我也一直在寻找如何在FSD和DISK DRIVER中如何保持联系一致,不过感觉的确很困难啊......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-20 07:10
引用第8楼guobing_xu2007-03-19 23:11发表的“”:
如果我在文件过滤层hook,然后可以修改irp的某些标志,在传递下去,这样可以么,到了磁盘层,我修改得irp的标志位还可能保留么?


很遗憾~~~FSD和disk不在同一个device stack中,一般都要由fsd重新构造IRP,除非fsd接到的IRP已经给disk device stack预留了stack location,但貌似不太可能~~~
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
guobing_xu
驱动牛犊
驱动牛犊
  • 注册日期2007-01-15
  • 最后登录2007-03-26
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-19 21:11
如果我在文件过滤层hook,然后可以修改irp的某些标志,在传递下去,这样可以么,到了磁盘层,我修改得irp的标志位还可能保留么?
guobing_xu
驱动牛犊
驱动牛犊
  • 注册日期2007-01-15
  • 最后登录2007-03-26
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-19 21:09
找个合适的地方hook ,以后呢,怎样和下面的驱动结合起来!
doskey
论坛版主
论坛版主
  • 注册日期2004-12-08
  • 最后登录2016-04-05
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望302点
  • 贡献值0点
  • 好评度300点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-03-13 15:54
Re:各位大侠,怎样在磁盘级驱动上,监控IRP_MJ_WRITE获取对应应用程序命!!在线
找个合适的地方hook
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
6楼#
发布于:2007-03-13 15:07
引用第4楼rayyang20002007-03-13 08:12发表的“”:


这个思路有些意思,毕竟FileSystem的各个IRP处理都由Windows保证各个运行的环境,大多数IRP的thread context是不变的,这里得到的pid都是有效的。但是也只有FSD才可以知道哪个FileSystem IRP对应于哪个Storage IRP,而如果没有这个信息,Storage driver是没有办法判断它自己收到的IRP的pid。但是ntfs.sys都没有source code,这种信息都无从得知,所以这个思路看起来有局限性。


嘿嘿~
没有战争就没有进步 X3工作组 为您提供最好的军火
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-03-13 08:12
引用第3楼killvxk2007-03-13 10:00发表的“”:



以前看过一个FSD+Disk的,FSD里取pid,处理的——disk里根据FSD传下来的东西处理...老复杂了~
而且是FSD,不是Filter差距太大~


这个思路有些意思,毕竟FileSystem的各个IRP处理都由Windows保证各个运行的环境,大多数IRP的thread context是不变的,这里得到的pid都是有效的。但是也只有FSD才可以知道哪个FileSystem IRP对应于哪个Storage IRP,而如果没有这个信息,Storage driver是没有办法判断它自己收到的IRP的pid。但是ntfs.sys都没有source code,这种信息都无从得知,所以这个思路看起来有局限性。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
8楼#
发布于:2007-03-13 08:00
引用第2楼rayyang20002007-03-13 07:54发表的“”:
不可能做到。storage的driver大多数的IRP都是由disk.sys/cdrom.sys用StartIo或者WorkerThread来传送的,有些还运行在<= DISPATCH_LEVEL上,而且thread context都被switch过,所以很多时候,你只能得到System。



以前看过一个FSD+Disk的,FSD里取pid,处理的——disk里根据FSD传下来的东西处理...老复杂了~
而且是FSD,不是Filter差距太大~
没有战争就没有进步 X3工作组 为您提供最好的军火
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-03-13 07:54
不可能做到。storage的driver大多数的IRP都是由disk.sys/cdrom.sys用StartIo或者WorkerThread来传送的,中间的各个filter driver也有可能使用这种方式来传送IRP,这样造成有些IRP运行在<= DISPATCH_LEVEL上,而且thread context都被switch过,所以很多时候,你只能得到System。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
10楼#
发布于:2007-03-12 20:18
貌似可以参看FSD获得进程的方法~
没有战争就没有进步 X3工作组 为您提供最好的军火
游客

返回顶部