编译及使用方法:
1.安装CNG库:
需要在微软官网下载Cryptographic Provider Development Kit, 项目->属性的VC++目录的包含目录,库目录设置相应的位置
链接器的常规->附加库目录C:\Windows Kits\10\Cryptographic Provider Development Kit\Lib\x64
输入->附加依赖项一定要设置为ksecdd.lib
2.在Utils.c-> PocBypassIrrelevantFileExtension设置要过滤的文件扩展名,Process.c>PocIsUnauthorizedProcess设置非授权进程
3.使用Visual Studio 2019编译Debug x64驱动,编译User、UserDll 和 UserPanel
4.建议在Windows 10 x64,NTFS环境运行(这里主要是FltFlushBuffers2 的IRP_MN_FLUSH_AND_PURGE只支持NTFS)。
设计部分:
1.双缓冲部分的设计:
这一部分,看起来很难,实际上只有不到一百行的代码,重点是对于Cache Manager、Memory Manager和File System Driver同步的理解。而实际上,我们把私有的缓冲作为密文缓冲,而密文缓冲不被允许下发NonCachedIo写请求,所以只剩下NonCachedIo的不解密的读请求,以及一点和明文缓冲的同步处理。
密文缓冲的初始化:
FileObject.c->PocInitShadowSectionObjectPointers
源码和文档都托管在了【WRITE-BUG数字空间】上面了,有需要的可自取~