阅读:1269回复:0
安装了杀毒软件后一个奇怪的现象
没安装杀毒软件之前用鼠标打开一个文件发的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,然后就开始读文件了???????? |
|