dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2031回复:7

驱动监控文件创建,删除

楼主#
更多 发布于:2009-09-04 10:35
我想通过过滤驱动来实现监控文件创建,删除
通过处理IRP_MJ_CREATE来实现
但是有个问题,好多重复的文件不停的创建,并且一些已存在的文件被修改时也会有
我只想记录新建的不存在的文件。比如用户新建的文件或者某安装程序释放的文件等
该如何操作
dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-09-06 10:37
论坛人气也太少了吧
发个帖子几天没人回
还是研究这个的人太少
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2009-09-07 02:01
我记得 :文件打开的时候有几种选择 1 尝试打开已经存在的 否则就失败2 尝试打开如果失败则创建 3直接创建
如果是上面三种情形的话 那么自己继续分析就很容易得到谁是创建了 呵呵
如果我记错了的话 呵呵 那么继续讨论
dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-09-07 14:58
to:mz_suya
你说的这个方法我也想过,从这个思路出发
第一步应该先获得文件是如何创建的。
第二步判断这个文件是否存在。
再根据结果来判断就可以。
但是返回的状态在哪部分呢?
我看了下FILE_OBJECT,IO_STACK_LOCATION.Parameters .Create结构体
好像没有哪个标志是标识如何创建的。
望指点
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
地下室#
发布于:2009-09-07 18:38
2.2.1.1 Disposition Information
The disposition information of a file (the upper eight bits of the Options field) indicates how the create  operation should handle the creation of this file should it already exist (or not exist.) They include:
• FILE_SUPERSEDE
• FILE_OPEN
• FILE_CREATE
• FILE_OPEN_IF
• FILE_OVERWRITE
• FILE_OVERWRITE_IF
• FILE_MAXIMUM_DISPOSITION
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
5楼#
发布于:2009-09-07 18:41
仔细点 很简单 今天在你的“好像没有哪个标志是标识如何创建的”提示下 我还以为自己记错了 呵呵特意查找了下 确定是有的 上面的摘抄自《irp manual》p24
其实还有别的几个方法可以达到你的要求  细心点 祝你好运 呵呵
dir541
驱动牛犊
驱动牛犊
  • 注册日期2008-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-09-08 11:11
感谢提醒。
在MSDN下发现了如下解释:
The Parameters.Create.Options member is a ULONG value that describes the options that are used when opening the handle. The high 8 bits correspond to the value of the CreateDisposition parameter of ZwCreateFile, and the low 24 bits correspond to the value of the CreateOptions parameter of ZwCreateFile.

你说的《irp mananger》哪有下,我google了下没有找到- -
还有其它什么方法,可否说下,让咱也多了解几种解决思路
mz_suya
驱动小牛
驱动小牛
  • 注册日期2008-06-13
  • 最后登录2010-08-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望648点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分1分
7楼#
发布于:2009-09-10 17:09
写错了 怪不得你找不到呢 呵呵
\src\filesys\OSR_docs                    irpman.pdf       IRP Manual
方法我知道两个 别人还告诉过我一个 不过没有理解 呵呵。不太方便告诉你。其实仔细想想 很简单的
游客

返回顶部