首页
社区
课程
招聘
未解决 [求助]minifilter如何能准确识别文件的打开与关闭? 1000雪币
发表于: 2024-10-28 13:36 325

未解决 [求助]minifilter如何能准确识别文件的打开与关闭? 1000雪币

2024-10-28 13:36
325

有个需求就是识别文件的打开与关闭操作,用来记录打开文件的进程名和文件名.目前的策略在FslPreOperationCallback和FslPostOperationCallback中添加过滤,
比如:对经过的IRP过滤记录(IRP_MJ_CREATE,IRP_MJ_CLEANUP,IRP_MJ_CLOSE),如果当前是IRP_MJ_CLOSE,而且上一次是IRP_MJ_CLEANUP,且之前有IRP_MJ_CREATE 结合一些标志位判断,又同是一个FileObject,
则认为是打开文件.
这样有2个问题,:

  1. 无法准备的区分文件打开与关闭操作,大多数文件的打开文件和关闭都是这样的处理过程.而且标志位也相同.
  2. 有的程序打开和关闭不走这个过程,在FslPreOperationCallback和FslPostOperationCallback完全收不到.比如:win11下的notepad,以前notepad++,EmEditor,editplus,甚至pdf关联的浏览器之后,双击pdf浏览器打开.
    在FslPreOperationCallback和FslPostOperationCallbackp完全收不到.目前设置了3个高度值在360000~385000之间.

也考虑过使用IRP的顺序来判定,比如:当前是IRP_MJ_CLOSE,上一个是IRP_MJ_CLEANUP,再上一个是XXXX,再上一个是XXXX,发现用这种方式也不能判定.

请问有什么办法相对准确的不会遗漏,判定区分文件的打开与关闭操作?
可以让应用层做辅助配合.
麻烦各位帮忙.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//