minifilter微过滤驱动怎么过滤内存映射的文件比如notepad读txt文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了minifilter微过滤驱动怎么过滤内存映射的文件比如notepad读txt文件相关的知识,希望对你有一定的参考价值。

参考技术A KeEnterCriticalRegion();

if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource, FALSE))


if(ExAcquireResourceExclusiveLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource, FALSE))


if(FileObject->SectionObjectPointer)

iosetTopLevelIrp( (PIRP)FSRTL_FSP_TOP_LEVEL_IRP );

CcFlushCache( FileObject->SectionObjectPointer, NULL, 0, NULL );

if(FileObject->SectionObjectPointer->ImageSectionObject)

MmFlushImageSection(
FileObject->SectionObjectPointer,
MmFlushForWrite//MmFlushForDelete//
) ;


if(FileObject->SectionObjectPointer->DataSectionObject)

CcPurgeCacheSection( FileObject->SectionObjectPointer,
NULL,
0,
FALSE ); //为TRUE,会强迫所有的FileObject重新初始化Cache


if(FileObject->PrivateCacheMap)

CcUninitializeCacheMap(FileObject, NULL, NULL);;


if(FileObject->SectionObjectPointer->DataSectionObject)

//Interval.QuadPart = DELAY_ONE_MILLISECOND * 500;//500ms
//KeDelayExecutionThread(KernelMode, FALSE, &Interval);

MmForceSectionClosed( FileObject->SectionObjectPointer,
TRUE//改为TRUE,彻底刷新缓存!!!
);

IoSetTopLevelIrp(NULL);


ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->PagingIoResource );

ExReleaseResourceLite( ((PFSRTL_COMMON_FCB_HEADER)FileObject->FsContext)->Resource );


KeLeaveCriticalRegion();

但是这样又容易毁坏数据。抛砖引玉,还请高手出手

windows驱动

 要求:

1.2年以上Windows相关开发经验,精通文件系统过滤驱动或注册表过滤驱动的知识;
2.熟悉WDM驱动框架,能够熟练使用WDK提供的文件系统、注册表系统相关的函数;
3.精通windows内核基本原理,理解文件系统、缓存管理、注册表系统;
4.熟悉MiniFilter框架的知识,能够熟练使用WinDbg、ollydbg或ida等调试工具;
5.使用MiniFilter框架开发文件过滤驱动或从事过杀毒软件开发者优先;
6.从事windows驱动层的透明加解密和文件沙箱经验或熟悉工作原理者优先。
 
学习知识

以上是关于minifilter微过滤驱动怎么过滤内存映射的文件比如notepad读txt文件的主要内容,如果未能解决你的问题,请参考以下文章

minifilter 算是总结吧

windows驱动

[内核驱动]Minifilter实现指定扩展名文件拒绝访问

文件系统过滤器驱动程序和文件系统微过滤器驱动程序有啥区别? (视窗)

minifilter/sfilter较为精确的判断是打开还是新建操作

Minifilter 相关