Windows文件系统的深入解析与应用
1. 数据扫描与通信设施
数据扫描部分可通过传统API像普通部分一样进行映射,这使反恶意软件应用能将扫描引擎实现为用户模式应用或内核模式驱动。当数据扫描部分被映射时,小过滤驱动中仍会生成IRP_M_READ事件,但小过滤器无需包含读取回调。
在用户应用的进程需要与其他实体(进程、内核驱动或远程应用)通信时,可借助操作系统提供的设施,最常用的是命名管道和邮槽。
- 命名管道 :是管道服务器与一个或多个管道客户端之间的命名单向通信通道。所有命名管道实例共享相同的管道名称,但每个实例有自己的缓冲区和句柄,为客户端/服务器通信提供独立通道,通过NPFS驱动(Npfs.sys)实现。
- 邮槽 :是邮槽服务器与一个或多个客户端之间的多向通信通道。邮槽服务器通过CreateMailslot Win32 API创建邮槽,只能读取一个或多个客户端生成的小消息(远程计算机之间发送时最大424字节)。客户端通过标准CreateFile API连接到邮槽,并通过WriteFile函数发送消息,常用于在域内广播消息,通过Mailslot文件系统驱动Msfs.sys实现。
从Windows 8开始,过滤管理器支持邮槽和命名管道。小过滤器可通过注册时指定的FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS标志,附加到邮槽和命名管道卷(\Device\NamedPipe和\Device\Mailslot),还能通过FltCreateNamedPipeFile或FltCreateMailslotFile API打开或创建命名管道或邮槽,而不生成递归事件。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



