当前位置: 代码迷 >> 驱动开发 >> 文本文件透明加密的有关问题
  详细解决方案

文本文件透明加密的有关问题

热度:120   发布时间:2016-04-28 11:21:10.0
文本文件透明加密的问题
1.不能捕获irp是因为explore将文件读入缓冲区,那么发起读操作的进程是notepad吗?
得到当前进程
C/C++ code
ULONG cfCurProcName(PUNICODE_STRING name){    PEPROCESS  curproc;    ULONG    i,need_len;    ANSI_STRING ansi_name;    if(s_cf_proc_name_offset == 0)        return 0;    // 获得当前进程PEB,然后移动一个偏移得到进程名所在位置。    curproc = PsGetCurrentProcess();    // 这个名字是ansi字符串,现在转化为unicode字符串。    RtlInitAnsiString(&ansi_name,((PCHAR)curproc + s_cf_proc_name_offset));    need_len = RtlAnsiStringToUnicodeSize(&ansi_name);    if(need_len > name->MaximumLength)    {        return RtlAnsiStringToUnicodeSize(&ansi_name);    }    RtlAnsiStringToUnicodeString(name,&ansi_name,FALSE);    return need_len;}

2.notepad使用内存映射技术,不能有效捕获读非分业irp,如何处理irp。
3.直接读写硬盘文件,即构造非缓存读写irp,那么缓存中的数据刷新怎么办。

------解决方案--------------------
建议LZ查询一个相关手册,应该可以解决问题!
------解决方案--------------------
探讨
1.不能捕获irp是因为explore将文件读入缓冲区,那么发起读操作的进程是notepad吗?
得到当前进程
C/C++ code

ULONG cfCurProcName(PUNICODE_STRING name)
{
PEPROCESS curproc;
ULONG i,need_len;
ANSI_STRING ansi_name;
if(s_……