zoukankan      html  css  js  c++  java
  • 劫持系统进程禁止创建文件

    劫持系统进程禁止创建文件
    #include<stdio.h>
    #include<windows.h>
    #include<string.h>
    #include"detours.h"
    #pragma comment (lib ,"detours.lib" )

    HANDLE(WINAPI * oldCreateFileW)(
            _In_ LPCWSTR lpFileName,
            _In_ DWORD dwDesiredAccess,
            _In_ DWORD dwShareMode,
            _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
            _In_ DWORD dwCreationDisposition,
            _In_ DWORD dwFlagsAndAttributes,
            _In_opt_ HANDLE hTemplateFile
           ) = CreateFileW;

    HANDLE WINAPI newCreateFileW(
            _In_ LPCWSTR lpFileName,
            _In_ DWORD dwDesiredAccess,
            _In_ DWORD dwShareMode,
            _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes ,
            _In_ DWORD dwCreationDisposition,
            _In_ DWORD dwFlagsAndAttributes,
            _In_opt_ HANDLE hTemplateFile
           ){
           MessageBoxA(0, "劫持成功!" , "系统信息" , 0);
            return 0;
    }

    void Hook()
    {

           DetourRestoreAfterWith(); //恢复原来状态,
           DetourTransactionBegin(); //拦截开始
           DetourUpdateThread(GetCurrentThread()); //刷新当前线程
           DetourAttach(( void **)&oldCreateFileW, newCreateFileW); //实现函数拦截
           DetourTransactionCommit(); //拦截生效

    }

    void UnHook()
    {
           DetourTransactionBegin(); //拦截开始
           DetourUpdateThread(GetCurrentThread()); //刷新当前线程
           DetourDetach(( void **)&oldCreateFileW, newCreateFileW); //撤销拦截函数
           DetourTransactionCommit(); //拦截生效
    }

    _declspec(dllexport) void go(){
            MessageBoxA(0, "系统进程劫持成功!" , "系统信息" , 0);
            int i = 0;
            while (1){
                  Hook();
                   if (i == 60){
                         UnHook();
                          break;
                  }
                  Sleep(1000);
           }
    }




  • 相关阅读:
    容器环境的JVM内存设置最佳实践
    K8S基于ingress-nginx实现灰度发布
    基于ambassador实现K8S灰度发布
    Nginx配置中一个不起眼字符"/"的巨大作用,失之毫厘谬以千里
    springboot之jackson的两种配置方式
    CentOS7清理磁盘空间
    主机磁盘满了,却查不到大文件占用
    【数据库-MySql】开启事件 event_scheduler
    Jenkins自动化构建vue项目然后发布到远程服务器
    CentOS 7 使用NVM管理nodejs
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531478.html
Copyright © 2011-2022 走看看