文件过滤驱动之文件隐藏

本文介绍在Windows 10环境下,通过minispy迷你间谍驱动程序实现文件隐藏的方法,并演示如何利用白名单机制获取指定目录下的所有文件。包括测试环境设置、调用HideFile.exe进行文件隐藏、使用WinAPI遍历目录以及白名单Pid的添加与删除等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看结果:

测试环境:win10 1803 64位系统
创建测试目录 C:\test 创建不同类型的文件
在这里插入图片描述
管理员权限启动cmd
sc start 启动 minifilter 驱动
调用HideFile.exe 传入指令,操作类型 目录 文件类型(文件类型可以传 * 则隐藏目录下所有文件)
在这里插入图片描述
右键刷新 test 目录
在这里插入图片描述
在这里插入图片描述
管理员权限调用WinAPI FindFirstFile FindNextFile 遍历 C:\test 目录下所有文件
在这里插入图片描述
在这里插入图片描述
将 获取路径下所有文件.exe 的 Pid 加入白名单后,即可获取到目录下的文件
在这里插入图片描述
过滤目录,过滤类型,白名单Pid 均可多次添加和删除
在这里插入图片描述

功能实现:

Windows驱动程序样本—minispy
修改模板 只保留 IRP_MJ_DIRECTORY_CONTROL 的操作后回调
在这里插入图片描述
ProcessId 与白名单的Pid进行比较,相等则不进行隐藏文件操作。

ULONG ProcessId = FltGetRequestorProcessId(Data);

取出文件信息 与 过滤路径 文件类型做比较

// 获取文件路径
status = FltGetFileNameInformation(Data,
        FLT_FILE_NAME_OPENED | FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP,
        &nameInfo);
FltParseFileNameInformation(nameInfo);// 解析FLT_FILE_NAME_INFORMATION结构的内容
status = FileMonGetFullPathName(nameInfo, fullPathLongName);

// 获取文件名
currentFileInfo = (PFILE_BOTH_DIR_INFORMATION)Data->Iopb->Parameters.DirectoryControl.QueryDirectory.DirectoryBuffer;
currentFileInfo->FileName, currentFileInfo->FileNameLength

文件我上传到优快云,感兴趣的可以下载下来玩玩
文件是debug64编译,驱动未签名,仅供虚拟机开启测试模式使用,测试前请保存快照
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值