-
-
未解决 [求助]minifilter如何能准确识别文件的打开与关闭? 1000雪币
-
发表于: 2024-10-28 13:36 336
-
有个需求就是识别文件的打开与关闭操作,用来记录打开文件的进程名和文件名.目前的策略在FslPreOperationCallback和FslPostOperationCallback中添加过滤,
比如:对经过的IRP过滤记录(IRP_MJ_CREATE,IRP_MJ_CLEANUP,IRP_MJ_CLOSE),如果当前是IRP_MJ_CLOSE,而且上一次是IRP_MJ_CLEANUP,且之前有IRP_MJ_CREATE 结合一些标志位判断,又同是一个FileObject,
则认为是打开文件.
这样有2个问题,:
- 无法准备的区分文件打开与关闭操作,大多数文件的打开文件和关闭都是这样的处理过程.而且标志位也相同.
- 有的程序打开和关闭不走这个过程,在FslPreOperationCallback和FslPostOperationCallback完全收不到.比如:win11下的notepad,以前notepad++,EmEditor,editplus,甚至pdf关联的浏览器之后,双击pdf浏览器打开.
在FslPreOperationCallback和FslPostOperationCallbackp完全收不到.目前设置了3个高度值在360000~385000之间.
也考虑过使用IRP的顺序来判定,比如:当前是IRP_MJ_CLOSE,上一个是IRP_MJ_CLEANUP,再上一个是XXXX,再上一个是XXXX,发现用这种方式也不能判定.
请问有什么办法相对准确的不会遗漏,判定区分文件的打开与关闭操作?
可以让应用层做辅助配合.
麻烦各位帮忙.
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: