首页 > 代码库 > 不知道为什么,我这里出了问题

不知道为什么,我这里出了问题

其实,道理上说,的确,创建一个文件,是要有打开文件的这个过程的,

但是不知道为什么,我这里根本拦截不到打开文件的这个过程。

举个例子,

前面初始化了Minifilter,然后注册了两个回调,进程创建回调和镜像加载回调

红色部分为进程创建回调,其实进程创建回调被触发的时候,第一个镜像就已经被加载起来了,

但是我不明白,为什么,第一个镜像加载回调会在进程创建回调后面触发

子进程PID为344,进程创建回调触发之后,直接触发的镜像加载回调,Minifilter根本没有拦截到Create这个exe文件的操作

紫色框部分为镜像加载回调

绿色框部分为minifilter的Create回调,上面的一行为 Pre ,下面一行为Post,

根本就没有拦截到 exe 的操作,我不明白,为什么我这里会这样。

我的测试环境是Windows XP sp3 x86 ,内核版本 NT5.1 WDK版本2600

我很想知道,这东西到底是根本没Create,还是怎样了,但是今天先看了一下 CreateProcess 源码,大致是

BasepMapFile 这个函数把它们映射到内存的,而这个函数里面调用了2个函数 NtOpenfile 和 NtCreateSection ,第一个函数就是 Create
(我没找到 IRP_MJ_OPEN 阿 , 0x00 是 IRP_MJ_CREATE)

所以我很纳闷,不过不管怎么说,就是这么回事,minifilter抓不到


不知道为什么,我这里出了问题