文件透明加密(C、C#)

本软件为本地离线文件加密工具,核心(C语言_MiniFilter Driver +C#)

功能如下:

采用 AES256-CBC、PBKDF2 加密算法,对本地文档、图片、CAD等文件进行打开无感加密 / 解密;

支持自定义文件后缀、绑定对应打开程序、自定义资源图标;

双击加密文件自动解密,编辑完成后自动重新加密覆盖原文件;

提供独立解密窗口、全局密码修改功能,无网络上传、安全存储逻辑。

还有很多BUG没有消除,但凑合可用,本人对C语言不是很熟悉缘故,蓝屏+死机搞的我接近崩溃...

C语言基本原理:影子文件机制技术(考虑大文件加密解密------也是无奈选择)

  • 全 IRQL 兼容 :所有锁均使用 自旋锁(KSPIN_LOCK),替代快速互斥体,确保可在 DISPATCH_LEVEL 等高 IRQL 下安全调用。

  • 非分页内存 :关键代码和数据置于 NONPAGED 段,保证分页 I/O 路径的稳定性。

  • 缓存管理 :主动清理文件系统缓存(CcPurgeCacheSection),防止缓存与密文不一致。

  • 异步处理:加密/解密、阴影创建等耗时操作通过工作项或后台线程异步执行,避免阻塞主 I/O 路径。

  • 错误恢复:加解密过程中若失败,可回滚重命名操作并清理临时文件。

  • 兼容性:支持 NTFS 文件系统,适配 Windows 10/11 及后续版本(WDK 10.0.26100.0)。

注意:特别关注 WIN 11 文件打开机制。

XML 复制代码
12:31:44.2457742	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:44.2458189	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:44.2458311	Notepad.exe	20048	QueryNetworkOpenInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, AllocationSize: 1601/1/1 8:00:00, EndOfFile: 1601/1/1 8:00:00, FileAttributes: A
12:31:44.2458371	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.2458493	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.2461099	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:44.2461429	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:44.2461513	Notepad.exe	20048	QueryBasicInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, FileAttributes: A
12:31:44.2461563	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.2461655	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.2463687	Notepad.exe	20048	QueryDirectory	C:\Users\Administrator\Desktop\111.txt	SUCCESS	FileInformationClass: FileBothDirectoryInformation, Filter: 111.txt, 2: 111.txt
12:31:44.4624572	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Disallow Exclusive, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened
12:31:44.5463558	Notepad.exe	20048	QueryOpen	C:\Program Files (x86)\SogouInput\16.6.0.4073\installfile.txt	FAST IO DISALLOWED	
12:31:44.5464842	Notepad.exe	20048	CreateFile	C:\Program Files (x86)\SogouInput\16.6.0.4073\installfile.txt	NAME NOT FOUND	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
12:31:44.6380071	Notepad.exe	20048	QueryInformationVolume	C:\Users\Administrator\Desktop\111.txt	SUCCESS	VolumeCreationTime: 2026/8/5 10:04:14, VolumeSerialNumber: FAB7-3ABB, SupportsObjects: True, VolumeLabel: 
12:31:44.6380368	Notepad.exe	20048	QueryAllInformationFile	C:\Users\Administrator\Desktop\111.txt	BUFFER OVERFLOW	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, FileAttributes: A, AllocationSize: 0, EndOfFile: 0
12:31:44.6385514	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.6385716	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.6497823	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:44.6498507	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:44.6499024	Notepad.exe	20048	QueryNetworkOpenInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, AllocationSize: 1601/1/1 8:00:00, EndOfFile: 1601/1/1 8:00:00, FileAttributes: A
12:31:44.6499197	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.6499673	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.6500775	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:44.6501207	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:44.6501370	Notepad.exe	20048	QueryNetworkOpenInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, AllocationSize: 1601/1/1 8:00:00, EndOfFile: 1601/1/1 8:00:00, FileAttributes: A
12:31:44.6501488	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:44.6501647	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.1571153	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:47.1571543	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:47.1571780	Notepad.exe	20048	QueryNetworkOpenInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, AllocationSize: 1601/1/1 8:00:00, EndOfFile: 1601/1/1 8:00:00, FileAttributes: A
12:31:47.1572004	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.1572191	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.1572949	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:47.1573311	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:47.1573454	Notepad.exe	20048	QueryNetworkOpenInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, AllocationSize: 1601/1/1 8:00:00, EndOfFile: 1601/1/1 8:00:00, FileAttributes: A
12:31:47.1573516	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.1573633	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6039555	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:47.6039935	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:47.6040124	Notepad.exe	20048	QueryBasicInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, FileAttributes: A
12:31:47.6040200	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6040342	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6042700	Notepad.exe	20048	QueryDirectory	C:\Users\Administrator\Desktop\111.txt	SUCCESS	FileInformationClass: FileBothDirectoryInformation, Filter: 111.txt, 2: 111.txt
12:31:47.6043234	Notepad.exe	20048	QueryOpen	C:\Users\Administrator\Desktop\111.txt	FAST IO DISALLOWED	
12:31:47.6043540	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
12:31:47.6043631	Notepad.exe	20048	QueryBasicInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	CreationTime: 2026/8/10 12:31:40, LastAccessTime: 2026/8/10 12:31:40, LastWriteTime: 2026/8/10 12:31:40, ChangeTime: 2026/8/10 12:31:44, FileAttributes: A
12:31:47.6043688	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6043798	Notepad.exe	20048	IRP_MJ_CLOSE	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6044154	Notepad.exe	20048	CreateFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Desired Access: Generic Read/Write, Disposition: OpenIf, Options: Synchronous IO Non-Alert, Non-Directory File, Disallow Exclusive, Attributes: N, ShareMode: Read, AllocationSize: 0, OpenResult: Opened
12:31:47.6052203	Notepad.exe	20048	WriteFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Offset: 0, Length: 12, Priority: Normal
12:31:47.6053273	Notepad.exe	20048	SetEndOfFileInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	EndOfFile: 12
12:31:47.6053477	Notepad.exe	20048	FASTIO_ACQUIRE_FOR_CC_FLUSH	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6053507	Notepad.exe	20048	WriteFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	Offset: 0, Length: 4,096, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
12:31:47.6053586	Notepad.exe	20048	FASTIO_RELEASE_FOR_CC_FLUSH	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
12:31:47.6086358	Notepad.exe	20048	SetAllocationInformationFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	AllocationSize: 12
12:31:47.6088097	Notepad.exe	20048	CloseFile	C:\Users\Administrator\Desktop\111.txt	SUCCESS	
相关推荐
xiaobobo33303 小时前
c语言中for循环条件中定义临时栈变量的作用域
c语言·for循环条件定义栈变量·大括号作用域·独立栈变量
geovindu3 小时前
CSharp: 万年历
开发语言·后端·c#·.net
惜离殇3 小时前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
潘潘的嵌入式日记5 小时前
I²C 从机接收总被覆盖?双缓冲要在 STOP 时交接
c语言·开发语言·单片机
xx~t7 小时前
嵌入式——Linux软件编程——网络1
linux·c语言·网络·vscode·网络协议
离陌在学C#10 小时前
C# 异步编程:从 async/await 到 Task 实战指南
开发语言·数据库·c#
羚尔10 小时前
C语言数组
c语言·开发语言
老当益壮梁奶奶13 小时前
Linux软件编程学习笔记(十一):深入浅出 TCP 协议与 Socket 编程实践
linux·c语言·笔记·学习·tcp/ip
Navigator_Z14 小时前
LeetCode //C - 1223. Dice Roll Simulation
c语言·算法·leetcode
用户2986985301414 小时前
PDF 转 HTML 全攻略:三种方法轻松搞定网页转换
c#·html·.net