当前位置:网站首页>Double buffer transparent encryption and decryption driven course paper + project source code based on minifilter framework
Double buffer transparent encryption and decryption driven course paper + project source code based on minifilter framework
2022-06-25 11:13:00 【biyezuopinvip】
Catalog
FOKS-TROT Developing documents 1
introduction : 1
brief introduction : 1
Compiling and using methods : 1
Design part : 3
Test part : 18
Unrepaired bug: 18
end : 18
introduction :
This project is an experimental project , And the author's understanding of the file system will inevitably be biased , So it can be misleading , I hope readers can learn dialectically , And please follow the relevant open source agreements .
Because I wrote one before minifilter Transparent encryption and decryption driver , But the level was really limited , There are a lot of problems , No reason found , Just evaded , This leads to errors on the basis of errors , So on the basis of previous project development experience , Wrote this project .
This project is also intended to be a bi design , any similarity , It's exactly the same s(- -)b
brief introduction :
This project is a use minifilter The transparent encryption and decryption filter driver of the framework , When a process has a specific file extension written to it ( such as txt,docx) Files tend to be automatically encrypted . The authorization process automatically decrypts the ciphertext file when it wants to read it , Unauthorized processes do not decrypt , Show ciphertext , And it is not allowed to modify the ciphertext , The encryption or decryption here is only for NonCachedIo. The desktop can also send privileged encryption and decryption commands , Implement separate encryption or decryption .
1. This project uses double buffering , Authorized process and unauthorized process use plaintext buffer and ciphertext buffer respectively ;
2. Use StreamContext Store the file information when the driver is running , How to use the tail of the file identification , At the end of the file 4KB Store the decryption information required for the file ;
3. Use AES 128-ECB Pattern , And use ciphertext to misappropriate (Ciphertext stealing) Methods , Avoid that plaintext must be block aligned (padding) The problem of ;
4.Write and Read Use SwapBuffers Transparent encryption and decryption ;
5. Privileged encryption and privileged decryption use reentry (Reentry) The way , Make the driver encrypt and decrypt files ;
6. solve FileRenameInformationEx and FileRenameInformation problem , Therefore, it can automatically encrypt and decrypt docx,doc,pptx,ppt,xlsx,xls Etc tmp File rename read / write file ;
7. Register process related callbacks , Use linked lists to manage authorized and unauthorized processes ; Register process and thread object callbacks , Protection process EPROCESS,ETHREAD object ; Check the integrity of the code segment of the authorization process .
Compiling and using methods :
1. install CNG library :
https://www.microsoft.com/en-us/download/details.aspx?id=30688
It needs to be downloaded on Microsoft's official website Cryptographic Provider Development Kit,
project -> Attribute VC++ The directory contains the directory , Set the corresponding location for the library directory
General of linker -> Additional Library Directory C:\Windows Kits\10\Cryptographic Provider Development Kit\Lib\x64
Input -> Additional dependencies must be set to ksecdd.lib
2. stay Utils.c-> PocBypassIrrelevantFileExtension Set file extensions to filter ,Process.c->PocIsUnauthorizedProcess Set up unauthorized processes
3. Use Visual Studio 2019 compile Debug x64 drive , compile User、UserDll and
UserPanel
4. It is suggested that Windows 10 x64,NTFS Environment is running ( This is mainly FltFlushBuffers2
Of IRP_MN_FLUSH_AND_PURGE Only support NTFS),






边栏推荐
- A five-year technical Er, based on the real experience of these years, gives some suggestions to the fresh students
- 金仓数据库 KingbaseES 插件force_view
- Previous string inversion topic
- Remove the problem of orange border on the desktop control in WebView
- FPGA基于VGA显示字符及图片
- Apache ShenYu 入門
- 2022年PMP项目管理考试敏捷知识点(2)
- 基于Minifilter框架的双缓冲透明加解密驱动 课程论文+项目源码
- Think about it
- 金仓数据库 KingbaseES 插件DBMS_UTILITY
猜你喜欢

数据库系列:MySQL索引优化总结(综合版)

Compilation of learning from Wang Shuang (1)

金仓KFS数据集中场景(多对一)部署

COSCon'22 讲师征集令

基于OpenStreetMap+PostGIS的地理位置系统 论文文档+参考论文文献+项目源码及数据库文件

Use of three-level linkage plug-ins selected by provinces and cities

Getting started with Apache Shenyu

Writing wechat applet with uni app

Explanation and use of kotlin syntax for Android

NuxtJS实战案例
随机推荐
Kingbasees plug-in DBMS of Jincang database_ session
How gaussdb counts the response time of user SQL
Oracle彻底卸载的完整步骤
Is it safe to speculate in stocks by mobile phone?
Apache ShenYu 入門
Software testing to avoid being dismissed during the probation period
垃圾回收机制
中國信通院沈瀅:字體開源協議——OFL V1.1介紹及合規要點分析
c盘使用100%清理方法
FPGA displays characters and pictures based on VGA
Comparator(用于Arrays.sort)
Is it safe for Guosen Securities to open a securities account
服务端渲染
TASK03|概率论
GaussDB others内存比较高的场景
Chinese translation of IMA Lazarus' the new giant, the goddess of Liberty
1-7snapshots and clones in VMWare
报名开启|飞桨黑客马拉松第三期如约而至,久等啦
查询法,中断法实现USART通信
【观察】ObjectScale:重新定义下一代对象存储,戴尔科技的重构与创新