阅读:5313回复:16
内存映射文件这种文件读写文件不通过I/O,使用文件过滤驱动应该如何处理?
内存映射文件这种文件读写文件不通过I/O,
使用文件过滤驱动应该如何处理? |
|
沙发#
发布于:2009-05-10 00:06
不会吧,看论坛里好多人在讨论透明加密,如果使用文件过滤驱动,一定会有同样的问题的。
|
|
板凳#
发布于:2009-05-10 06:00
内存映射文件这种文件读写文件不通过I/O Who told you that? |
|
地板#
发布于:2009-05-10 09:42
内存映射文件会发起pageio请求...
|
|
|
地下室#
发布于:2009-05-11 10:12
顶楼上!
可以得出阶段性结论,但不要把结论当做truth。 |
|
5楼#
发布于:2009-05-11 10:33
我前几天也碰到这个问题,一直也是怀疑
最后确定,肯定是通过 IO的 是我路径过滤时候没有处理好 建议把所有经过create,read,write的fileobject都打印出来,多看看,就明白了 |
|
|
6楼#
发布于:2009-05-12 00:32
我前几天也碰到这个问题,一直也是怀疑
最后确定,肯定是通过 IO的 是我路径过滤时候没有处理好 建议把所有经过create,read,write的fileobject都打印出来,多看看,就明白了我没看明白楼上的话。你说如果以过IO,那应该在哪个IRP处理的。看样子还是要好好在分析跟踪一下。我使用FileMon和FileSpy没有监控到。 |
|
7楼#
发布于:2009-05-12 10:58
多看看论坛的其他帖子吧,很多经验和方法
我用的是 minifilter |
|
|
8楼#
发布于:2009-05-13 22:21
现在内存映射文件读写是搞定了,但是新的问题又来了
1.IRP_MJ_READ在读写普通文件是无法正确解密。 2.在透明加密算法中,是否也要处理Fast I/O. |
|
9楼#
发布于:2009-05-14 21:17
最简单的办法,对相应的fastio直接返回false
|
|
10楼#
发布于:2009-05-14 21:29
你是怎么加解密的?
缓存中存的是明文还是密文? |
|
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的帖子仍然是凤毛麟角。 谢谢! |
|
12楼#
发布于:2009-05-18 16:12
to guaiguaiguan 。
文件移动,仅仅是个rename操作。 在你第一次关闭后,系统已经缓存了该文件的数据。当再次打开时,直接mapview就能得到数据,所以不会有Read发生 |
|
13楼#
发布于:2009-05-20 07:40
也很关心这个问题,楼主说一下怎么弄成功的!感激不尽。
|
|
14楼#
发布于:2009-05-22 00:28
其实不是真正的内存映射,而是Page I/O.
文件映射明天还需要测试,跟踪! |
|
15楼#
发布于:2009-05-27 11:31
楼主说说Page I/O是什么东东,如何拦截这个Page I/O操作。有什么关键字可能查到拦截的方法。帮帮忙,
|
|
16楼#
发布于:2009-05-28 12:55
写过滤驱动时开始别过滤。
将所有的文件读写过程记录下来,慢慢分析其中的参数。 |
|