阅读:48370回复:582
一个修改过的基于ShenHui大牛的透明加解密代码
ShenHui 大牛的基于minifilter 的文件透明加解密代码是一套非常优秀的代码,不过对于初学者来说不易掌握,有些初学者在机器上忙了半天都没看到效果,我对代码做了一点小修改,方便初学者掌握
1 手工加载时自动增加system,explorer.exe,notepad.exe为监控进程 2 添加了异或加密算法 3 取消了不对c分区监控的限制,因为很多虚拟机里只有C分区 安装和加载说明 1 把engine.inf,engine.sys拷贝到虚拟机里 2 右击engine.inf,点安装 3 手工加载进cmd, 输入 sc start engine 4 手工停止进cmd,输入 sc stop engine 5 测试时请关闭杀毒软件,代码与诺顿杀毒软件的冲突是由于刷缓存引起的,是能解决的,不过初学者不必关心这个 编译环境 WDK 7600.16835.0 |
|
沙发#
发布于:2010-12-04 11:52
我在学习这个minifilter driver时发现以下问题:
不能对D:下的记事本文件进行加密;可以在C:下对记事本文件加密。研究了两三天了,也不知道是什么原因,望楼主指点迷津。 在此表示感谢 =============================== main.c 里有 这么一句话 #if DBG if ((ctx->Name.Buffer[0] == L'D') || (ctx->Name.Buffer[0] == L'd')) { FltDeleteContext(ctx) ; status = STATUS_FLT_DO_NOT_ATTACH ; } #endif 你把这句话去掉,就对所有盘监控 |
|
板凳#
发布于:2010-11-23 20:07
if ((bIsPPTFile != NULL) && !_wcsnicmp(pwszExt, L".ppt", wcslen(L".ppt")))
{ *bIsPPTFile = TRUE ; } // pass .csa if ((szProcessName == L"acad.exe") && !_wcsnicmp(pwszExt, L".csa", wcslen(L".csa"))) { bRet = FALSE ; __leave ; } ============== 加在对ppt的判断后面,前面扩展名还没有提取出来 |
|
地板#
发布于:2010-11-23 18:28
回 37楼(lijianhua12) 的帖子
你看一下这个图片,这个是我打开acad.exe(2004)的时候出现的,当用acad.exe2008的时候,进程会打不开。 ======================= 你把你判断acad.exe的代码贴出来 光一个 psi_addprocess("acad.exe",TRUE);是不行的 |
|
地下室#
发布于:2010-11-22 21:12
回 34楼(lijianhua12) 的帖子
这个我知道,在shenhui大牛的代码里面也有相应的说明,但是当我去打开CAD这个程序的时候,打不开呀?会出现错误(2004),或者打不开进程(2008),你知道是什么原因吗? ===================== 那个代码里没有考虑acad的情况 应该在process.c 的Ps_IsCurrentProcessMonitored 函数最后加上 if ((szProcessName == L"acad.exe") && !_wcsnicmp(pwszExt, L".csa", wcslen(L".csa"))) return FALSE; |
|
5楼#
发布于:2010-11-22 12:46
acad不能加密扩展名为.csa的文件,必须放行
|
|
6楼#
发布于:2010-11-18 20:52
我在 user 目录下放了一个简单的应用层控制代码,可以自己往里面加代码控制驱动
|
|