yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
阅读:1509回复: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
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
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
yandong_8212
驱动小牛
驱动小牛
  • 注册日期2006-07-28
  • 最后登录2011-02-11
  • 粉丝0
  • 关注0
  • 积分1046分
  • 威望464点
  • 贡献值1点
  • 好评度173点
  • 原创分0分
  • 专家分1分
地板#
发布于:2008-04-03 10:55
引用第5楼jylhy于2008-04-01 19:29发表的  :
请教楼主个问题,如何判断某个程序使用了文件映射.谢谢

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

返回顶部