基于minifilter的分布式驱动级文件透明加解密案例
这是我参加中国软件杯比赛时写的基于驱动的文件透明加解密软件。程序有三部分,驱动内核代码,服务器短,客户端。驱动在系统内核级别对磁盘文件进行加密和解密,客户端实现了驱动的管理和通信,服务器端实现了加解密策略的定制,访问授权等。现在共享给需要研究驱动的同学。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1521152 2013-08-21 12:21 文件透明加解密 用户手册.doc
文件 200192 2013-08-21 11:47 文件透明加解密设计方案.doc
目录 0 2013-08-21 23:53 源程序
目录 0 2013-08-21 23:53 源程序Driver3
目录 0 2013-08-21 23:53 源程序Driver3Driver3
文件 6 2013-08-21 20:49 源程序Driver3Driver3BUILD
文件 5054 2013-08-21 20:49 源程序Driver3Driver3BuildLog.htm
文件 9482 2013-08-21 20:10 源程序Driver3Driver3Driver3.W7.vcproj
文件 7652 2013-08-21 20:49 源程序Driver3Driver3Driver3.W7.vcproj.PC201306041540.Administrator.user
文件 289 2013-06-07 10:10 源程序Driver3Driver3Driver3.vsprops
文件 51137 2013-08-21 20:17 源程序Driver3Driver3FileEncrypt.cpp
文件 2972 2013-06-30 00:35 源程序Driver3Driver3FileEncrypt.h
文件 78536 2013-08-21 20:03 源程序Driver3Driver3PREfast_defects_chk_win7_x86.xml
文件 205 2013-08-21 20:03 源程序Driver3Driver3PREfast_defects_chk_win7_x86Sum.txt
文件 1378 2013-06-26 15:11 源程序Driver3Driver3UserInterface.cpp
文件 2526 2013-06-26 15:04 源程序Driver3Driver3UserInterface.h
文件 297 2013-08-21 20:49 源程序Driver3Driver3uildchk_win7_x86.log
文件 281 2013-08-21 20:09 源程序Driver3Driver3uildfre_win7_x86.err
文件 4505 2013-08-21 20:09 源程序Driver3Driver3uildfre_win7_x86.log
文件 600 2013-08-21 20:09 源程序Driver3Driver3uildfre_win7_x86.wrn
文件 436 2013-06-07 10:10 源程序Driver3Driver3uildinc.cmd
文件 70 2013-08-21 20:49 源程序Driver3Driver3uildnumber.h
文件 20 2013-06-07 10:10 源程序Driver3Driver3ddkbldenv.cmd
文件 222 2013-06-07 10:10 源程序Driver3Driver3ddkpostbld.cmd
文件 91 2013-06-07 10:10 源程序Driver3Driver3ddkprebld.cmd
文件 1371 2013-06-07 10:10 源程序Driver3Driver3drvcommon.h
文件 104272 2013-06-22 15:02 源程序Driver3Driver3drvversion.aps
文件 2201 2013-06-07 10:10 源程序Driver3Driver3drvversion.h
文件 2034 2013-06-07 10:10 源程序Driver3Driver3drvversion.rc
文件 260 2013-06-07 10:10 源程序Driver3Driver3makefile
目录 0 2013-08-21 23:53 源程序Driver3Driver3objchk_win7_x86
............此处省略166个文件信息
///////////////////////////////////////////////////////////////////////////////
///
/// Copyright (c) 2013 -
///
/// Original filename: Driver3.cpp
/// Project : Driver3
/// Date of creation : 2013-06-07
/// Author(s) :
///
/// Purpose : ription>
///
/// Revisions:
/// 0000 [2013-06-07] Initial revision.
///
///////////////////////////////////////////////////////////////////////////////
// $Id$
#ifdef __cplusplus
extern “C“ {
#endif
#include
#include
#include
#include
#ifdef __cplusplus
}; // extern “C“
#endif
#include “FileEncrypt.h“
#include “tools.h“
#include “UserInterface.h“
#define PAGEDCODE code_seg(“PAGE“)
#define LOCKEDCODE code_seg()
//#define LOCKEDCODE code_seg(“PAGE“)
/************************************************************************/
/* 全局变量 */
/************************************************************************/
//
// This is a lookAside list used to allocate our pre-2-post structure.
//
NPAGED_LOOKASIDE_LIST Pre2PostContextList;
//进程名的偏移
ULONG ProcessNameOffset = 0;
//minifilter 句柄
PFLT_FILTER gFilterHandle;
//关键字链表头
PTYPE_KEY_WORD key_word_header;
//全局开关
BOOLEAN IS_SYSTEM_OPEN =FALSE;
//加解密密码
CHAR key[KEY_MAX_LEN]={0};
//通信端口句柄
PFLT_PORT serverPort=NULL;
/************************************************************************/
/* 通信口回调函数 */
/************************************************************************/
//连接回调
NTSTATUS
MyConnectionCallback(
__in PFLT_PORT ClientPort
__in_opt PVOID ServerPortCookie
__in_bcount_opt(SizeOfContext) PVOID ConnectionContext
__in ULONG SizeOfContext
__deref_out_opt PVOID *ConnectionPortCookie
);
//关闭回调
VOID
MyDisconnectCallback (
__in_opt PVOID ConnectionCookie
);
//消息回调
NTSTATUS
MyMessageCallback (
__in_opt PVOID PortCookie
__in_bcount_opt(InputBufferLength) PVOID InputBuffer
__in ULONG InputBufferLength
__out_bcount_part_opt(OutputBufferLength*ReturnOutputBufferLength) PVOID OutputBuffer
__in ULONG OutputBufferLength
__out PULONG ReturnOutputBufferLength
);
/*************************************************************************
Prototypes
*************************************************************************/
NTSTATUS
InstanceSetup (
__in PCFLT_RELATED_objectS Fltobjects
__in FLT_INSTANCE_SETUP_FLAGS Flags
__in DEVICE_TYPE VolumeDeviceType
__in FLT_FILESYSTEM_TYPE VolumeFilesystemType
);
VOID
CleanupVolumeContext(
__in PFLT_CONTEXT Context
__in FLT_CONTEXT_TYPE ContextType
);
VOID
CleanupStreamHandleContext(
__in PFLT_CONTEXT Context
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1521152 2013-08-21 12:21 文件透明加解密 用户手册.doc
文件 200192 2013-08-21 11:47 文件透明加解密设计方案.doc
目录 0 2013-08-21 23:53 源程序
目录 0 2013-08-21 23:53 源程序Driver3
目录 0 2013-08-21 23:53 源程序Driver3Driver3
文件 6 2013-08-21 20:49 源程序Driver3Driver3BUILD
文件 5054 2013-08-21 20:49 源程序Driver3Driver3BuildLog.htm
文件 9482 2013-08-21 20:10 源程序Driver3Driver3Driver3.W7.vcproj
文件 7652 2013-08-21 20:49 源程序Driver3Driver3Driver3.W7.vcproj.PC201306041540.Administrator.user
文件 289 2013-06-07 10:10 源程序Driver3Driver3Driver3.vsprops
文件 51137 2013-08-21 20:17 源程序Driver3Driver3FileEncrypt.cpp
文件 2972 2013-06-30 00:35 源程序Driver3Driver3FileEncrypt.h
文件 78536 2013-08-21 20:03 源程序Driver3Driver3PREfast_defects_chk_win7_x86.xm
文件 205 2013-08-21 20:03 源程序Driver3Driver3PREfast_defects_chk_win7_x86Sum.txt
文件 1378 2013-06-26 15:11 源程序Driver3Driver3UserInterface.cpp
文件 2526 2013-06-26 15:04 源程序Driver3Driver3UserInterface.h
文件 297 2013-08-21 20:49 源程序Driver3Driver3uildchk_win7_x86.log
文件 281 2013-08-21 20:09 源程序Driver3Driver3uildfre_win7_x86.err
文件 4505 2013-08-21 20:09 源程序Driver3Driver3uildfre_win7_x86.log
文件 600 2013-08-21 20:09 源程序Driver3Driver3uildfre_win7_x86.wrn
文件 436 2013-06-07 10:10 源程序Driver3Driver3uildinc.cmd
文件 70 2013-08-21 20:49 源程序Driver3Driver3uildnumber.h
文件 20 2013-06-07 10:10 源程序Driver3Driver3ddkbldenv.cmd
文件 222 2013-06-07 10:10 源程序Driver3Driver3ddkpostbld.cmd
文件 91 2013-06-07 10:10 源程序Driver3Driver3ddkprebld.cmd
文件 1371 2013-06-07 10:10 源程序Driver3Driver3drvcommon.h
文件 104272 2013-06-22 15:02 源程序Driver3Driver3drvversion.aps
文件 2201 2013-06-07 10:10 源程序Driver3Driver3drvversion.h
文件 2034 2013-06-07 10:10 源程序Driver3Driver3drvversion.rc
文件 260 2013-06-07 10:10 源程序Driver3Driver3makefile
目录 0 2013-08-21 23:53 源程序Driver3Driver3objchk_win7_x86
............此处省略166个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)