资源简介

这是我参加中国软件杯比赛时写的基于驱动的文件透明加解密软件。程序有三部分,驱动内核代码,服务器短,客户端。驱动在系统内核级别对磁盘文件进行加密和解密,客户端实现了驱动的管理和通信,服务器端实现了加解密策略的定制,访问授权等。现在共享给需要研究驱动的同学。

资源截图

代码片段和文件信息

///////////////////////////////////////////////////////////////////////////////
///
/// 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  源程序\Driver3\Driver3\
     文件           6  2013-08-21 20:49  源程序\Driver3\Driver3\BUILD
     文件        5054  2013-08-21 20:49  源程序\Driver3\Driver3\BuildLog.htm
     文件        9482  2013-08-21 20:10  源程序\Driver3\Driver3\Driver3.W7.vcproj
     文件        7652  2013-08-21 20:49  源程序\Driver3\Driver3\Driver3.W7.vcproj.PC201306041540.Administrator.user
     文件         289  2013-06-07 10:10  源程序\Driver3\Driver3\Driver3.vsprops
     文件       51137  2013-08-21 20:17  源程序\Driver3\Driver3\FileEncrypt.cpp
     文件        2972  2013-06-30 00:35  源程序\Driver3\Driver3\FileEncrypt.h
     文件       78536  2013-08-21 20:03  源程序\Driver3\Driver3\PREfast_defects_chk_win7_x86.xml
     文件         205  2013-08-21 20:03  源程序\Driver3\Driver3\PREfast_defects_chk_win7_x86Sum.txt
     文件        1378  2013-06-26 15:11  源程序\Driver3\Driver3\UserInterface.cpp
     文件        2526  2013-06-26 15:04  源程序\Driver3\Driver3\UserInterface.h
     文件         297  2013-08-21 20:49  源程序\Driver3\Driver3\buildchk_win7_x86.log
     文件         281  2013-08-21 20:09  源程序\Driver3\Driver3\buildfre_win7_x86.err
     文件        4505  2013-08-21 20:09  源程序\Driver3\Driver3\buildfre_win7_x86.log
     文件         600  2013-08-21 20:09  源程序\Driver3\Driver3\buildfre_win7_x86.wrn
     文件         436  2013-06-07 10:10  源程序\Driver3\Driver3\buildinc.cmd
     文件          70  2013-08-21 20:49  源程序\Driver3\Driver3\buildnumber.h
     文件          20  2013-06-07 10:10  源程序\Driver3\Driver3\ddkbldenv.cmd
     文件         222  2013-06-07 10:10  源程序\Driver3\Driver3\ddkpostbld.cmd
     文件          91  2013-06-07 10:10  源程序\Driver3\Driver3\ddkprebld.cmd
     文件        1371  2013-06-07 10:10  源程序\Driver3\Driver3\drvcommon.h
     文件      104272  2013-06-22 15:02  源程序\Driver3\Driver3\drvversion.aps
     文件        2201  2013-06-07 10:10  源程序\Driver3\Driver3\drvversion.h
     文件        2034  2013-06-07 10:10  源程序\Driver3\Driver3\drvversion.rc
     文件         260  2013-06-07 10:10  源程序\Driver3\Driver3\makefile
     目录           0  2013-08-21 23:53  源程序\Driver3\Driver3\objchk_win7_x86\
............此处省略166个文件信息

评论

共有 条评论