50、文件系统逆向:文件操作监控(Minifilter)、文件隐藏、文件保护

文件系统逆向,说白了就是跟操作系统底层的“文件搬运工”打交道。Windows 的文件系统驱动模型里,Minifilter 是一个绕不开的话题。我当年第一次接触它的时候,也被那套复杂的 IRP 处理流程搞得头大。但一旦你理解了它的设计哲学——说白了就是“挂个钩子,拦截一切”——很多安全软件、反病毒引擎、甚至某些恶意软件的原理,你一眼就能看穿。

这一讲,我们聚焦三个实战场景:文件操作监控文件隐藏文件保护。这三个能力,本质上都是通过 Minifilter 驱动在 I/O 路径上做手脚。你想想看,如果能拦截到每一次打开、写入、删除的请求,那还有什么秘密是藏得住的?

Minifilter 基础:一个轻量级的“中间人”

Minifilter 是 Windows 过滤管理器(Filter Manager)框架下的一个驱动模型。它比传统的 Legacy Filter 更轻量、更安全。我个人习惯把 Minifilter 想象成一个“高速公路上的检查站”——每个文件操作(IRP)都要经过这里,你可以选择放行、修改、或者直接拦截。

一个 Minifilter 驱动需要注册一个 FLT_REGISTRATION 结构体,告诉系统你想监控哪些操作。比如:

CONST FLT_REGISTRATION FilterRegistration = {
    sizeof(FLT_REGISTRATION),
    FLT_REGISTRATION_VERSION,
    0,
    NULL,
    &MyMiniFilterUnload,
    &MyInstanceSetup,
    &MyInstanceQueryTeardown,
    &MyInstanceTeardownStart,
    &MyInstanceTeardownComplete,
    NULL, // 生成安全回调
    NULL, // 名称通知
    NULL, // 正常关闭回调
    NULL, // 事务通知回调
    NULL, // 正常文件信息
    NULL, // 正常文件名称
    NULL, // 正常文件对象
    NULL, // 正常文件对象上下文
    NULL, // 正常流上下文
    NULL, // 正常流句柄上下文
    NULL, // 正常文件节点上下文
    NULL, // 正常文件节点上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
    NULL, // 正常文件对象上下文
        
        
公众号:蓝海资料掘金营,微信deep3321