Chinaluo_007
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2010-04-13
  • 粉丝1
  • 关注1
  • 积分40分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4811回复:16

内存映射文件这种文件读写文件不通过I/O,使用文件过滤驱动应该如何处理?

楼主#
更多 发布于:2009-05-08 16:50
内存映射文件这种文件读写文件不通过I/O,
使用文件过滤驱动应该如何处理?
Chinaluo_007
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2010-04-13
  • 粉丝1
  • 关注1
  • 积分40分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-05-10 00:06
不会吧,看论坛里好多人在讨论透明加密,如果使用文件过滤驱动,一定会有同样的问题的。
michaelgz
论坛版主
论坛版主
  • 注册日期2005-01-26
  • 最后登录2012-10-22
  • 粉丝1
  • 关注1
  • 积分150分
  • 威望1524点
  • 贡献值1点
  • 好评度213点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2009-05-10 06:00
内存映射文件这种文件读写文件不通过I/O

 Who told you that?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地板#
发布于:2009-05-10 09:42
内存映射文件会发起pageio请求...
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
jununfly
驱动牛犊
驱动牛犊
  • 注册日期2008-10-17
  • 最后登录2010-06-01
  • 粉丝0
  • 关注0
  • 积分86分
  • 威望560点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-05-11 10:12
顶楼上!
可以得出阶段性结论,但不要把结论当做truth。
renxianfu
驱动牛犊
驱动牛犊
  • 注册日期2003-02-28
  • 最后登录2016-01-09
  • 粉丝2
  • 关注2
  • 积分48分
  • 威望365点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分1分
5楼#
发布于:2009-05-11 10:33
我前几天也碰到这个问题,一直也是怀疑
最后确定,肯定是通过 IO的
是我路径过滤时候没有处理好
建议把所有经过create,read,write的fileobject都打印出来,多看看,就明白了
谢谢关注!
Chinaluo_007
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2010-04-13
  • 粉丝1
  • 关注1
  • 积分40分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-05-12 00:32
我前几天也碰到这个问题,一直也是怀疑
最后确定,肯定是通过 IO的
是我路径过滤时候没有处理好
建议把所有经过create,read,write的fileobject都打印出来,多看看,就明白了我没看明白楼上的话。你说如果以过IO,那应该在哪个IRP处理的。看样子还是要好好在分析跟踪一下。我使用FileMon和FileSpy没有监控到。
renxianfu
驱动牛犊
驱动牛犊
  • 注册日期2003-02-28
  • 最后登录2016-01-09
  • 粉丝2
  • 关注2
  • 积分48分
  • 威望365点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分1分
7楼#
发布于:2009-05-12 10:58
多看看论坛的其他帖子吧,很多经验和方法
我用的是 minifilter
谢谢关注!
Chinaluo_007
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2010-04-13
  • 粉丝1
  • 关注1
  • 积分40分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2009-05-13 22:21
现在内存映射文件读写是搞定了,但是新的问题又来了

1.IRP_MJ_READ在读写普通文件是无法正确解密。
2.在透明加密算法中,是否也要处理Fast I/O.
test
驱动牛犊
驱动牛犊
  • 注册日期2002-03-07
  • 最后登录2011-01-06
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望251点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分18分
9楼#
发布于:2009-05-14 21:17
最简单的办法,对相应的fastio直接返回false
wesley2005
驱动牛犊
驱动牛犊
  • 注册日期2007-06-16
  • 最后登录2011-03-29
  • 粉丝1
  • 关注0
  • 积分34分
  • 威望327点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2009-05-14 21:29
你是怎么加解密的?
缓存中存的是明文还是密文?
guaiguaiguan
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2011-01-12
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望556点
  • 贡献值0点
  • 好评度490点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2009-05-15 09:58
楼主是怎么搞定的,能否交流一下。我最近也也遇到这个烦心事。notepad.exe和微软的Word读文件好像也是借助于内存映像文件来操作的,当用户往notepad主界面拖动一个文件刚刚打开过又被关闭的文件时,这个操作会触发CreateFile CreateFileMapping MapViewOfFile等函数调用,但就是没有调用ReadFile。因为这个文件曾经在其他目录存取过,拖放到本卷的另一个目录,只会触发IRP_SET_INFORMATION Rename请求,然后在新的目录,打开该文件,就不再调用ReadFile、即IRP_MJ_READ请求了。同样的情况也发生微软word程序,然而Windows自带的写字板程序和UltraEdit却不是这样,后者每次打开文件都会调用ReadFile函数,让IRP_MJ_READ得以执行。
比如
我使用SoftICE在SfRead入口处设了断点。第一次用notepad打开C:\1.txt文件,会触发SfRead,关闭1.txt。然后将该文件移动到另外一个目录比如c:\downloads,下,再次使用Notepad.exe打开1.txt,发现SfRead没有产生中断,而且SFFastIORead也没有中断。如果notepad第二次读写1.txt文件是借助于内存映射文件的话,我如何拦截第2次这个读操作。毕竟这是两个不同的目录。我不想拦截ZwCreateSection和ZwOpenSection 、zwMapSection等系列函数,需要拦截CcGetFileObjectFromSectionPtrs这类函数吗?如果不是从API Hook触发,不拦截系统调用,单存IFS 较多如何实现。
搜索了整个论坛的回帖和回复,只是找到了Pageio和内存映射相关6篇帖子,仍然无从下手。如何拦截PageIO的帖子仍然是凤毛麟角。

   谢谢!
wesley2005
驱动牛犊
驱动牛犊
  • 注册日期2007-06-16
  • 最后登录2011-03-29
  • 粉丝1
  • 关注0
  • 积分34分
  • 威望327点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2009-05-18 16:12
to guaiguaiguan 。
文件移动,仅仅是个rename操作。
在你第一次关闭后,系统已经缓存了该文件的数据。当再次打开时,直接mapview就能得到数据,所以不会有Read发生
allup
驱动牛犊
驱动牛犊
  • 注册日期2006-03-04
  • 最后登录2010-08-17
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望121点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2009-05-20 07:40
也很关心这个问题,楼主说一下怎么弄成功的!感激不尽。
Chinaluo_007
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2010-04-13
  • 粉丝1
  • 关注1
  • 积分40分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2009-05-22 00:28
其实不是真正的内存映射,而是Page I/O.

文件映射明天还需要测试,跟踪!
guaiguaiguan
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2011-01-12
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望556点
  • 贡献值0点
  • 好评度490点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2009-05-27 11:31
楼主说说Page I/O是什么东东,如何拦截这个Page I/O操作。有什么关键字可能查到拦截的方法。帮帮忙,
Chinaluo_007
驱动牛犊
驱动牛犊
  • 注册日期2009-04-22
  • 最后登录2010-04-13
  • 粉丝1
  • 关注1
  • 积分40分
  • 威望361点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2009-05-28 12:55
写过滤驱动时开始别过滤。
将所有的文件读写过程记录下来,慢慢分析其中的参数。
游客

返回顶部