【源码+文档】基于Minifilter框架的双缓冲透明加解密驱动

文章介绍了如何在Windows环境中编译和使用CNG库,涉及设置VisualStudio的库目录和附加依赖项。内容包括对双缓冲机制的设计,特别是针对CacheManager、MemoryManager和FileSystemDriver的同步理解,以及在Windows10x64和NTFS文件系统下运行的重要性。源码和文档可在指定平台获取。
摘要由CSDN通过智能技术生成

编译及使用方法

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数字空间】上面了,有需要的可自取~

现在很多做透明加解密的初学者都比较困惑,不知从何下手,我也是如此,从什么都不会开始,慢慢肯文件系统内幕,到OSR上面请教,四个月的时间还是收获颇丰。其实真正研究以后会发现,很多都是体力活,要不断的去跟踪文件的操作流程。在这里发一个基于minifilter透明加解密驱动源码仅供大家参考,其中也实现了对文件标识的处理,文件标识放在文件尾部。算是抛砖引玉吧。坦白的说,这个代码并不稳定(偶尔与norton杀毒软件会有冲突),但是我觉得整个流程是正确的,可能有些细节还没有考虑清楚,我觉得对初学者还是有一定帮助吧,当然大虾们可以跳过,呵呵。另外,有关加解密算法的代码由于不是我写的,也不好公开,所以我把相关代码用“\\\”给注释掉了(但没有去掉),请大家见谅,不过不会对整个流程产生影响。大家可以重点看一下各个派遣函数的实现。 欢迎大家拍砖,觉得有点意思就顶一下啊,在看代码的过程中如果有什么好的建议,也希望能告诉我。 最后非常感谢XiangXiangRen,zzbwang,neak47等网友在这段时间内对我的帮助。XiangXiangRen的书以及zzbwang的帖子对我完成这项工作有很大的帮助和参考价值,在此谨与大家分享。 编译环境:WDK6001.18002 XP x86 PS: 您可以将附件中的代码进行修改和转发,但转发时请注明出处。 http://bbs.driverdevelop.com/htm_data/39/1001/119736.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值