阅读:2031回复:7
驱动监控文件创建,删除
我想通过过滤驱动来实现监控文件创建,删除
通过处理IRP_MJ_CREATE来实现 但是有个问题,好多重复的文件不停的创建,并且一些已存在的文件被修改时也会有 我只想记录新建的不存在的文件。比如用户新建的文件或者某安装程序释放的文件等 该如何操作 |
|
沙发#
发布于:2009-09-06 10:37
论坛人气也太少了吧
发个帖子几天没人回 还是研究这个的人太少 |
|
板凳#
发布于:2009-09-07 02:01
我记得 :文件打开的时候有几种选择 1 尝试打开已经存在的 否则就失败2 尝试打开如果失败则创建 3直接创建
如果是上面三种情形的话 那么自己继续分析就很容易得到谁是创建了 呵呵 如果我记错了的话 呵呵 那么继续讨论 |
|
地板#
发布于:2009-09-07 14:58
to:mz_suya
你说的这个方法我也想过,从这个思路出发 第一步应该先获得文件是如何创建的。 第二步判断这个文件是否存在。 再根据结果来判断就可以。 但是返回的状态在哪部分呢? 我看了下FILE_OBJECT,IO_STACK_LOCATION.Parameters .Create结构体 好像没有哪个标志是标识如何创建的。 望指点 |
|
地下室#
发布于: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 |
|
5楼#
发布于:2009-09-07 18:41
仔细点 很简单 今天在你的“好像没有哪个标志是标识如何创建的”提示下 我还以为自己记错了 呵呵特意查找了下 确定是有的 上面的摘抄自《irp manual》p24
其实还有别的几个方法可以达到你的要求 细心点 祝你好运 呵呵 |
|
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了下没有找到- - 还有其它什么方法,可否说下,让咱也多了解几种解决思路 |
|
7楼#
发布于:2009-09-10 17:09
写错了 怪不得你找不到呢 呵呵
\src\filesys\OSR_docs irpman.pdf IRP Manual 方法我知道两个 别人还告诉过我一个 不过没有理解 呵呵。不太方便告诉你。其实仔细想想 很简单的 |
|