yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
阅读:1504回复:6

WORD中无法截获部分数据

楼主#
更多 发布于:2008-03-24 10:31
大家好,现在遇到一个很棘手的问题,相信有朋友也遇到过.我采用FileSpy模型,当用word2003进行写文件时,无法截获到一部分数据.这部分数据是以文件偏移到0x3c的地方,按照Open Office的文档来看,这个地方指的是小文件起始扇区号.我跟踪了所有的IPR_WRITE以及FAST_IO_WRITE,没有发现有对该偏移位置的写操作.
所以现在我很迷惑,到底这部分数据是从哪儿来的?此外,我试了OFFICE2007下能截获到的.所以我大胆的做了以下猜测,但不知道是否正确.
1)WORD2003内部使用越级IRP,导致FILTER无法监控?
2)WORD2003采用直接读取磁盘的方法写入文件?这种可能性很小,因为我们试了一下其他文件系统.
3)???
希望各位,给一点提示.
此外,我分析了WORD的写流程,虽然它是通过RENAME来实现的,但是我相信,即使是RENAME,它的数据也不可能凭空产生,因为我监控了所有的写IRP,包括其他的卷.
商务MSN:YanDong_8212@163.com
abc13271552
驱动小牛
驱动小牛
  • 注册日期2007-08-13
  • 最后登录2023-12-05
  • 粉丝0
  • 关注0
  • 积分34分
  • 威望552点
  • 贡献值0点
  • 好评度160点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2008-03-25 09:17
你的filter是否在适当的地点release掉了过滤条件。(类如fscontext)
那部分内容可能先写到cache中,然后延迟写。这时你条件没了。

1)WORD2003内部使用越级IRP,导致FILTER无法监控?
。。。。。word是app层,理论上不会直接操作irp.不符合软件设计思路。
2)WORD2003采用直接读取磁盘的方法写入文件?这种可能性很小,因为我们试了一下其他文件系统.
。。。。。理论上也不可能,没这个必要,它不需要关心底层。

你的问题:有可能是对临时文件的处理不正确造成的。
驱网无线,快乐无限
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
板凳#
发布于:2008-03-25 09:39
感谢楼楼上的回复,我通过加载FASTFAT终于找到原因,原来WORD采用文件映射,而文件映射是由系统自己写入磁盘的,所以会截获不了.
商务MSN:YanDong_8212@163.com
skh2006
驱动牛犊
驱动牛犊
  • 注册日期2008-03-15
  • 最后登录2008-04-29
  • 粉丝1
  • 关注0
  • 积分290分
  • 威望30点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-03-25 12:55
请教楼主,在minifilter里通过截获IRP,怎样处理这种文件映射的问题呢?

我在打开,关闭时都清了缓存,为什么记事本的解密还是不行啊
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
地下室#
发布于:2008-04-01 16:28
文件映射在短时间内不会产生I/O操作,你说的缓存是指的FASTIO.文件映射会通过系统进程来写,可能要等你程序结束了以后再写.另外,记事本没有用文件映射.
商务MSN:YanDong_8212@163.com
jylhy
驱动牛犊
驱动牛犊
  • 注册日期2008-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分373分
  • 威望50点
  • 贡献值0点
  • 好评度37点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-04-01 19:29
请教楼主个问题,如何判断某个程序使用了文件映射.谢谢
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
6楼#
发布于:2008-04-03 10:55
引用第5楼jylhy于2008-04-01 19:29发表的  :
请教楼主个问题,如何判断某个程序使用了文件映射.谢谢

我只是做了初步的实验是:
(!CcIsFileCached() && PagedIO && NoCachedIo)
商务MSN:YanDong_8212@163.com
游客

返回顶部