shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
阅读:37465回复:134

【分享】minifilter透明加解密源码

楼主#
更多 发布于:2010-01-25 11:28
 现在很多做透明加解密的初学者都比较困惑,不知从何下手,我也是如此,从什么都不会开始,慢慢肯文件系统内幕,到OSR上面请教,四个月的时间还是收获颇丰。其实真正研究以后会发现,很多都是体力活,要不断的去跟踪文件的操作流程。在这里发一个基于minifilter的透明加解密的驱动源码仅供大家参考,其中也实现了对文件标识的处理,文件标识放在文件尾部。算是抛砖引玉吧。坦白的说,这个代码并不稳定(偶尔与norton杀毒软件会有冲突),但是我觉得整个流程是正确的,可能有些细节还没有考虑清楚,我觉得对初学者还是有一定帮助吧,当然大虾们可以跳过,呵呵。另外,有关加解密算法的代码由于不是我写的,也不好公开,所以我把相关代码用“\\\”给注释掉了(但没有去掉),请大家见谅,不过不会对整个流程产生影响。大家可以重点看一下各个派遣函数的实现。
    欢迎大家拍砖,觉得有点意思就顶一下啊,在看代码的过程中如果有什么好的建议,也希望能告诉我。
    最后非常感谢XiangXiangRen,zzbwang,neak47等网友在这段时间内对我的帮助。XiangXiangRen的书以及zzbwang的帖子对我完成这项工作有很大的帮助和参考价值,在此谨与大家分享。
 
编译环境:WDK6001.18002 XP x86
 
PS: 您可以将附件中的代码进行修改和转发,但转发时请注明出处。
 

 
把附件重新放上来了。encryption_on_the_fly.zip
作一名真实,诚实,优秀的科技工作者!
dtod
驱动牛犊
驱动牛犊
  • 注册日期2006-07-20
  • 最后登录2013-09-09
  • 粉丝0
  • 关注0
  • 积分418分
  • 威望355点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-01-25 16:40

DriverEntry中 Register engine with FltMgr 注册失败的时候应该调用下ExDeleteNPagedLookasideList( &Pre2PostContextList );
在我这FltRegisterFilter就失败返回c0000034 ?? 如果不加ExDeleteNPagedLookasideList( &Pre2PostContextList );
清除LookasideList 就蓝了
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2010-01-25 17:27
多谢兄弟!
作一名真实,诚实,优秀的科技工作者!
kuaixue1023
驱动牛犊
驱动牛犊
  • 注册日期2009-11-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望201点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-01-25 20:44
谢谢shenhui兄,看到以前你在OSR的一篇讨论,小弟有些细节想具体问一下,能够邮件联系吗,本人邮箱546439028@qq.com
zhsh200
驱动牛犊
驱动牛犊
  • 注册日期2005-01-27
  • 最后登录2013-07-18
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望212点
  • 贡献值1点
  • 好评度54点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-01-26 10:15
用于学习还是非常不错的资料,但是这种用强刷缓存的方法,会带来系统一定的不稳定性。
nobounded
驱动小牛
驱动小牛
  • 注册日期2003-08-14
  • 最后登录2011-07-07
  • 粉丝0
  • 关注0
  • 积分360分
  • 威望258点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-01-27 17:45
论坛中的好人啊,期待有人搞清楚怎么才能不与Norton等杀毒软件冲突。
taiji78
驱动牛犊
驱动牛犊
  • 注册日期2009-12-08
  • 最后登录2012-08-16
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2010-01-27 22:06
怎么测试呀?测试用的程序也发上来吧,非常感谢楼主!!
vigour001
驱动牛犊
驱动牛犊
  • 注册日期2009-06-02
  • 最后登录2010-01-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-01-28 10:12
非常感谢
goodone
驱动牛犊
驱动牛犊
  • 注册日期2007-01-30
  • 最后登录2014-04-30
  • 粉丝3
  • 关注0
  • 积分372分
  • 威望174点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2010-01-28 14:06
好贴 就要顶起来

支持!
栀子花驿站 www.zhizihua.com
nth2say
驱动牛犊
驱动牛犊
  • 注册日期2009-10-09
  • 最后登录2014-03-17
  • 粉丝1
  • 关注0
  • 积分28分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2010-01-29 23:37
呵呵 经常在osr上看到shenhui兄提问题。。很勤奋呢。
shenhui
驱动小牛
驱动小牛
  • 注册日期2006-05-11
  • 最后登录2023-02-10
  • 粉丝14
  • 关注11
  • 积分142分
  • 威望1314点
  • 贡献值1点
  • 好评度146点
  • 原创分0分
  • 专家分1分
  • 社区居民
10楼#
发布于:2010-02-04 12:22
回 6楼(taiji78) 的帖子
上层有些不是我做的,所以也不好给大家。
作一名真实,诚实,优秀的科技工作者!
wayitech
驱动牛犊
驱动牛犊
  • 注册日期2006-08-25
  • 最后登录2018-01-24
  • 粉丝1
  • 关注1
  • 积分33分
  • 威望273点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2010-02-09 09:36
谢谢,看看
taiji78
驱动牛犊
驱动牛犊
  • 注册日期2009-12-08
  • 最后登录2012-08-16
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2010-02-10 17:48
Re:回 6楼(taiji78) 的帖子
引用第10楼shenhui于2010-02-04 12:22发表的 回 6楼(taiji78) 的帖子 :
上层有些不是我做的,所以也不好给大家。

请问shenhui大侠,我在DriverEntry中加入了
PROCESS_INFO  processinfo;
........................
Psi_AddProcessInfo("WINWORD.EXE",TRUE);
processinfo.bMonitor=TRUE;
memcpy(processinfo.szProcessName,""WINWORD.EXE",16);
Psi_SetProcessMonitor(&processinfo,FALSE);

然后监控WORD时,WINDBG 设断点,发现不能中断在IRP_MJ_WRITE的PRE/POST函数上。
在IRP_MJ_CREATE中断时,竟是只能截获对目录进行打开。

请shenhui大侠给个测试方案吧,多谢!

不用公开应用层的源代码,就在驱动层做,设置上监控WORD,应该怎么做呢?
taiji78
驱动牛犊
驱动牛犊
  • 注册日期2009-12-08
  • 最后登录2012-08-16
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望261点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2010-02-10 18:01
我的EMAIL:taiji78@126.com
非常希望得到大侠的指点,谢谢!
l.daniel
驱动牛犊
驱动牛犊
  • 注册日期2009-12-30
  • 最后登录2010-04-19
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2010-02-18 23:21
thx a lot!!!
wanted999
驱动牛犊
驱动牛犊
  • 注册日期2006-03-28
  • 最后登录2012-08-13
  • 粉丝0
  • 关注0
  • 积分519分
  • 威望429点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2010-02-23 08:39
谢谢分享
daniel_bao
驱动牛犊
驱动牛犊
  • 注册日期2007-04-14
  • 最后登录2010-03-11
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望71点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2010-03-09 16:37
学习中,谢谢分享!
ronaldo
驱动小牛
驱动小牛
  • 注册日期2004-12-17
  • 最后登录2011-08-02
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望277点
  • 贡献值0点
  • 好评度104点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2010-03-26 17:27
shenhui, 请与我联系,有项目找你。wxr9@163.com
wonjhoncy
驱动牛犊
驱动牛犊
  • 注册日期2006-06-07
  • 最后登录2011-05-18
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望182点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2010-03-28 18:32
这个驱动安装完直接就可以加解密了吗?不用FilterAttach这个函数吗?
liuhui19842003
驱动牛犊
驱动牛犊
  • 注册日期2009-12-30
  • 最后登录2010-11-23
  • 粉丝1
  • 关注1
  • 积分52分
  • 威望481点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2010-03-30 11:08
我怎么编译时总是提示什么不是内部或外部命令,或者就是找不到指定路径啊?
上一页
游客

返回顶部