100分求教 minifilter文件驱动开发 关于irp_mj_create 获取信息疑问?

soul850224 2011-06-20 12:27:28
各位大虾:
小弟最近在研究 minifilter 文件过滤驱动开发 有个疑问 望各位给予解惑 谢谢!!
如果可以能加QQ便于交流 更加感谢 谢谢!
问题如下:
``````````````````````````````````````````````````````````````````````````````````````````````
我在驱动中过滤所有涉及到IRP_MJ_CREATE 的文件操作 但出现这样状况:
我的期望预见的是:
例 我打开一个 任意文件(比如 test.txt)我只要截取test.txt 这个有IRP_MJ_CREATE 的操作文件
```````````````````````````````````````````````````````````````````````````````````````````````
但是我获取的是 包含了很多的 库文件 exe 等等文件 (100+ 多个有IRP_MJ_CREATE 操作的文件)
这个我到明白 是在进行打开 test.txt 文件时 系统内部进行的加载活动 (我想杀毒 就是如此吧)
``````````````````````````````````````````````````````````````````````````````````````````````
各位大虾 ,有没有什么解决办法或建议
我只想获得我 想获取的最终目标文件 test.txt 其他的放过 不进行任何处理(就是在100+ 或更多文件中获取我的目标文件 test.txt )!!!

...全文
690 44 打赏 收藏 转发到动态 举报
写回复
用AI写文章
44 条回复
切换为时间正序
请发表友善的回复…
发表回复
Michael--Lee 2013-05-14
  • 打赏
  • 举报
回复
直接获取打开文件的文件名就可以了啊 有个file->filename可以得到文件打开的文件名 遍历这个文件名 用一个指针指向L"."就可以了啊 取得这个指针就行了啊
calm135 2012-09-09
  • 打赏
  • 举报
回复
加个文件名过滤
yupengda 2011-08-01
  • 打赏
  • 举报
回复
在create里判断文件是否是操作的那个文件,在底层不应该有这种想法。据我所知,在底层只能通过通信,才能知道应用层操作的文件名。
在create里可以通过比较文件名,判断一些标志位来滤掉大部分文件,但是具体哪个文件,无法判断。
其实你可以换个角度去考虑,比如处理内存,只要能实现你的功能就行。
stecdeng 2011-06-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuyu60305002 的回复:]
根据文件对象FileObject拿到文件的路径,然后比较,搜下 ObQueryNameString
[/Quote]
这位说的是SFILTER做法 一样是比较路径名 方法
很简单也很靠谱
之后的回复 都有点不知所云。。。。
stecdeng 2011-06-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 soul850224 的回复:]
Delelebug
你好.

你这个事获取文件名吧
这个我已经做到了 就是我只打开一个文件 但在debugview 中看到有N多文件

我这个目标 可能有点....

但是没办法 还得想办法解决啊
还是谢谢你..
[/Quote]
你的需求不就是获取文件名进行比较?
很奇怪啊 ?
在MINIFILTER下 进行路径名比较
是你需要监控的进行处理
不进行监控的返回COMPLETE 或者SUCCESS_NO_CALLBACK .
而比较的路径名并是由驱动固定死 由用户层通讯端传入
这样你想监控1.txt就监控1.txt 想监控2.doc就监控2.doc


[Quote=引用 11 楼 delelebug 的回复:]
加载的dll之类的,能区分出来,但是配置文件,字体文件,模板文件怎么办呢?
我个人觉得这个想法不太现实,
因为打开一个文件的时候,有很多有关的文件也同时打开了,又区分不出来。。。
[/Quote]
区分不出来在想象别的办法
有名字比较为什么不能判断出来?

而且在别的回复轻易断定别人的想法不可行
这个是否太过武断了
因为我们本身的知识储备不足
一句话扼杀的可能是一个正确的方向

另外说一句,你这个想法
我只想获得我 想获取的最终目标文件 test.txt 其他的放过 不进行任何处理
不太现实”
这个完全可行 去别处自己想要的最终文件 其余全部放行 完全可以 毕竟你写的是过滤驱动
不是文件驱动FAT32 NTFS,放行让不关心的文件按原来的流程走 这个是很正常的

[Quote=引用 6 楼 soul850224 的回复:]
其实我就是想做个 :
你在电脑上操作文件 然后在驱动中获取信息写成日志
但现在是 获取一大堆 加载库 exe 啊 什么的完全没达到目标... [/Quote]
日志不是你打印的么 比较文件名 你感兴趣的才打印 感兴趣的放行即可


[Quote=引用 16 楼 delelebug 的回复:]
某个目录下有个test.pdf文件,然后打开这个文件,则记录这个文件,提示用户test.pdf文件被打开,呵呵,
这个就是楼主的意思了

这不好判断吧,如果手动打开“应用程序加载配置文件”那咋办???
这个就得问楼主了,看楼主怎么处理了,呵呵
[/Quote]
所有文件进行操作 无论是写入读取还是删除 重命名
都要经过CREATE 只要在MINIFILTER CREATE中进行路径比对 判断出来 完全可以。
手动打开 这个一样是经过文件系统的



lyingbo 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 soul850224 的回复:]
.....
晕了 两位
和谐 和谐 社会
O(∩_∩)O哈哈~ 咱这是学术研究 争执难免
其实 大家都是无恶意的 无心之举

这事怪我没早现身 昨天太忙了 sorry
[/Quote]

这贴结了重开吧,要不他俩不好意思在讨论了~~~
soul850224 2011-06-21
  • 打赏
  • 举报
回复
.....
晕了 两位
和谐 和谐 社会
O(∩_∩)O哈哈~ 咱这是学术研究 争执难免
其实 大家都是无恶意的 无心之举

这事怪我没早现身 昨天太忙了 sorry


张小毛 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 lactoferrin 的回复:]

原来是这个导致不和谐,就当我放屁
[/Quote]
你这么说,我倒蛮不好意思的,当我上面也是放屁好了
Lactoferrin 2011-06-21
  • 打赏
  • 举报
回复
原来是这个导致不和谐,就当我放屁
Lactoferrin 2011-06-21
  • 打赏
  • 举报
回复
仅是一句玩笑话,不必当真
张小毛 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lactoferrin 的回复:]

实际上楼主是你的马甲
[/Quote]
这句友好?你可以问问楼主我是否认识他
Lactoferrin 2011-06-21
  • 打赏
  • 举报
回复
你这言语态度不友好,不像讨论问题的,我并无恶意
张小毛 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 lactoferrin 的回复:]

你是附加设备还是修改函数表
如果是这样你加载过滤的驱动程序后很快就卡死
[/Quote]
不要拿别人当3岁小孩子,
你是如何获取的,单单是system? 这一句我本就不想回复,
我前面已经描述的很清楚的,包括重现方式
Lactoferrin 2011-06-21
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 soul850224 的回复:]

谢谢 各位大侠的 建议和讨论...
虽然没解决(也许真的很难)但还是很有收获的...
这个贴在 放一放 没准那位大侠一下有思路了呢 \(^o^)/~

我也在查资料 但收获不大啊...

尤其感谢 Lactoferrin Delelebug 两位 O(∩_∩)O哈哈~ ...
你们交流 我学习
[/Quote]
用资源管理器打开文件时会查注册表找打开方式,你可以从这里下手,不过还是会漏掉一些
dukong123 2011-06-21
  • 打赏
  • 举报
回复
路过,围观。。。。。。。。。。。。
soul850224 2011-06-21
  • 打赏
  • 举报
回复
谢谢 各位大侠的 建议和讨论...
虽然没解决(也许真的很难)但还是很有收获的...
这个贴在 放一放 没准那位大侠一下有思路了呢 \(^o^)/~

我也在查资料 但收获不大啊...

尤其感谢 Lactoferrin Delelebug 两位 O(∩_∩)O哈哈~ ...
你们交流 我学习
soul850224 2011-06-21
  • 打赏
  • 举报
回复
底层这里 看来时没办法了

╮(╯▽╰)╭...
soul850224 2011-06-21
  • 打赏
  • 举报
回复
最后的思路了 通过资源管理器了
╮(╯▽╰)╭ 只能试试看了...
Lactoferrin 2011-06-20
  • 打赏
  • 举报
回复
你是附加设备还是修改函数表
如果是这样你加载过滤的驱动程序后很快就卡死
张小毛 2011-06-20
  • 打赏
  • 举报
回复
当然,杀软不兼容不仅仅这一点
加载更多回复(23)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧