fcgboy
驱动牛犊
驱动牛犊
  • 注册日期2007-08-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望113点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:1176回复:0

安装了杀毒软件后一个奇怪的现象

楼主#
更多 发布于:2009-01-10 15:09
没安装杀毒软件之前用鼠标打开一个文件发的irp序列(忽略其他的irp,只考虑create 和 read)
precreate -->create完成函数 -->post create -->read
FileObject->Flag有FO_HANDLE_CREATE标志

安装杀毒软件后
precreate (调用IoCallDriver后就一直没有返回,等read了一些数据才返回。真有点不懂。)-->read-->create完成函数 -->post create
FileObject->Flag没有FO_HANDLE_CREATE标志

为什么杀毒软件安装了后会出现这种问题?
即使杀毒软件在create 里头创建流文件,读取数据进行病毒分析,应该也不会出现这种现象吧?
到底杀毒软件在create的时候做了什么操作??????

我写了两个驱动A,B实验了一下
A 在B的上面。
当一个create下来后irp处理序列是
A preCreate -->B preCreate -->B Create的完成函数-->B postCreate -->A Create完成函数-->A postCreate
假如B是杀毒软件,A是我的过滤驱动,即使B的create中做什么操作,应该也会等A的create完成后,才会有个一read的irp过来吧?
A的create都还没完成,难道应用层就已经获取到了文件的HANDLE,然后就开始读文件了????????



游客

返回顶部