阅读:1517回复:5
2000下读某些类型文件怎么没看见IRP_MJ_READ请求
本人准备使用filemon在2000下实现对文件读写操作内容进行加解密操作(即修改操作)。
我想所有上层应用程序的读写操作过程读都应该包含IRP_MJ_READ,IRP_MJ_WRITE,FAST_IO_READ,FAST_IO_WRITE等类型IRP之一。 使用filemon监视某个目录下文读操作,当打开一个txt/doc/ppt等文件时并没有发现IRP_MJ_READ请求包经过和对FAST_IO_READ例程的调用;但nt下却不是这样,而且通过VC以二进制方式打开txt文件是也能捕获到IRP_MJ_READ请求并能查看到所读文件内容。 请高手指点: 1、2000下,使用filemon是否能截获文件系统所有的读请求并对请求返回结果进行修改 2、如果不行是否有可替代的办法 很急!! 非常感谢 |
|
沙发#
发布于:2002-05-05 20:36
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2002-05-06 01:57
比较有趣.
FILEMON事实上能够抓到所有的FILE IO. 但是看起来会很费解. 文件访问大约有3种方式. 1.标准的同步操作,异步文件读写. 2. FILE MAPPING (RING 0 SECTIONOBJECT)方式,NOTEPAD, PE格式的可执行文件启动等等.... 3. MS OFFICE, IE的那种比较奇怪的方式. 1.你是都能看到的. 2.看起来只能直接看到一部分. 其实都能看到, 但是因为基于系统的PAGE FAULT工作, 你会看到大量不直接关联的大量PAGEING IO 3.能够看到一部分.PPT我没有留心过, 象WORD那样的东西基于中间文件工作, 全部完成之后才 rename或者COPY成你指定的文件.所以看起来你只能看到一部分. 1,3能否成功, 看你的功力了, 对于2,比较微妙.我没什么自信. |
|
地板#
发布于:2002-05-08 12:41
office 打开文件是file id形式的,用一个id号打开,filemon是过滤不了的
|
|
地下室#
发布于:2002-05-08 20:58
du_lin说的不错. 注意过这个东西的, 怎么写贴子的时候就忘了.
(我在RING3上看到的就是COPYFILE被莫名其妙的被CALL了若干次.) 但总应该有处理方法的, 有时间查查看. 有人已经有什么好主意了么? [编辑 - 5/8/02 作者: zdhe] |
|
5楼#
发布于:2002-05-09 12:12
非常感谢大家的回复!
通过hook ReadFile、WriteFile等API来实现,不知可行性如何? |
|