当前位置:网站首页>基于Minifilter框架的双缓冲透明加解密驱动 课程论文+项目源码
基于Minifilter框架的双缓冲透明加解密驱动 课程论文+项目源码
2022-06-25 10:57:00 【biyezuopinvip】
目录
FOKS-TROT 开发文档 1
引言: 1
简介: 1
编译及使用方法: 1
设计部分: 3
测试部分: 18
未修复的 bug: 18
结束: 18
引言:
本项目是个实验性项目,且作者对于文件系统等的理解难免会存在偏差,因此可能会产生误导,望读者辩证的学习,并且请读者遵循相关的开源协议。
因为之前写过一个 minifilter 的透明加密解密驱动,但当时水平确实有限, 有很多的问题,没有找到原因,只是进行了规避,导致在错误的基础上又产生了错误,所以在之前项目开发经验的基础上,写了这个项目。
这个项目也打算作为毕设,如有雷同,纯属雷同 s(- -)b
简介:
本项目是一个使用 minifilter 框架的透明加密解密过滤驱动,当进程有写入特定的文件扩展名(比如 txt,docx)文件的倾向时自动加密。授权进程想要读取密文文件时自动解密,非授权进程不解密,显示密文,且不允许修改密文,这里的加密或解密只针对 NonCachedIo。桌面端也可以发送特权加密和特权解密命令,实现单独加密或解密。
1.本项目使用双缓冲,授权进程和非授权进程分别使用明文缓冲和密文缓冲;
2.使用 StreamContext 存放驱动运行时的文件信息,使用文件标识尾的方式,在文件的尾部 4KB 储存文件所需的解密信息;
3.使用 AES 128-ECB 模式,并且使用密文挪用(Ciphertext stealing)的方法,避免明文必须分块对齐(padding)的问题;
4.Write 和 Read 使用 SwapBuffers 的方式进行透明加密解密;
5.特权加密和特权解密使用重入(Reentry)的方式,使驱动加密解密文件;
6.解决 FileRenameInformationEx 和 FileRenameInformation 问题,因此可以自动加密解密 docx,doc,pptx,ppt,xlsx,xls 等使用 tmp 文件重命名方式读写的文件;
7.注册进程相关回调,使用链表统一管理授权与非授权进程;注册进程与线程对象回调,保护进程 EPROCESS,ETHREAD 对象;对授权进程的代码段进行完整性校验。
编译及使用方法:
1.安装 CNG 库:
https://www.microsoft.com/en-us/download/details.aspx?id=30688
需要在微软官网下载 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),






边栏推荐
- Shen Ying, China Academy of communications and communications: font open source protocol -- Introduction to ofl v1.1 and analysis of key points of compliance
- 一个五年北漂的技术er,根据这些年的真实经历,给应届生的一些建议
- 某APP中模拟器检测分析
- 【观察】ObjectScale:重新定义下一代对象存储,戴尔科技的重构与创新
- 金仓数据库 KingbaseES 插件identity_pwdexp
- Flutter adds event listening | subscription
- Leetcode 1249. 移除无效的括号(牛逼,终于做出来了)
- 撸一个随机数生成器
- Compilation of learning from Wang Shuang (1)
- MySQL synchronous data configuration and shell script implementation
猜你喜欢

Network remote access using raspberry pie

CSRF攻击

一个五年北漂的技术er,根据这些年的真实经历,给应届生的一些建议

【文件包含漏洞-03】文件包含漏洞的六种利用方式

网易开源的分布式存储系统 Curve 正式成为 CNCF 沙箱项目

Coscon'22 lecturer solicitation order

【文件包含漏洞-04】经典面试题:已知某网站仅存在本地文件包含漏洞时,如何GetShell?

Shen Lu, China Communications Institute: police open source Protocol - ofl v1.1 Introduction and Compliance Analysis

Dell technology performs the "fast" formula and plays ci/cd

Previous string inversion topic
随机推荐
Shen Lu, China Communications Institute: police open source Protocol - ofl v1.1 Introduction and Compliance Analysis
金仓KFS数据级联场景部署
开源社邀请您参加OpenSSF开源安全线上研讨会
Ouverture de l'inscription | le troisième marathon des hackers de pagaie est arrivé comme prévu.
Dragon Book tiger Book whale Book gnawing? Try the monkey book with Douban score of 9.5
Free access to the global human settlements layer (ghsl) dataset from Gee
Google Earth Engine(GEE)——evaluate实现一键批量下载研究区内的所有单张影像(上海市部分区域)
ARM64特有一些的汇编指令
TASK03|概率论
Shen Ying, China Academy of communications and communications: font open source protocol -- Introduction to ofl v1.1 and analysis of key points of compliance
Jincang KFS data centralized scenario (many to one) deployment
Checking whether the double value is an integer - Swift - checking if a double value is an integer - swift
Software testing to avoid being dismissed during the probation period
Daily 3 questions (2) - find out the lucky numbers in the array
GCC related
Is it safe to open an account through mobile phone if you open an account through stock speculation? Who knows?
查询法,中断法实现USART通信
Daily Mathematics Series 52: February 20
有关计网的五种类型题
Apache ShenYu 入门