代码之家  ›  专栏  ›  技术社区  ›  c00000fd

处理缓解措施和严格的检查政策是做什么的?

  •  1
  • c00000fd  · 技术社区  · 7 年前

    我正在尝试理解Windows 10中引入的进程安全缓解策略。说, PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY 我认为在使用错误句柄时应该引发异常。所以我要这样测试:

    bool bEnableIt = true;  //false
    
    BOOL bR;
    PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY pmshcp = {0};
    pmshcp.RaiseExceptionOnInvalidHandleReference = bEnableIt;
    pmshcp.HandleExceptionsPermanentlyEnabled = bEnableIt;
    bR = ::SetProcessMitigationPolicy(ProcessStrictHandleCheckPolicy, &pmshcp, sizeof(pmshcp));
    
    HANDLE hF = (HANDLE)0x1111;
    ::CloseHandle(hF);          //Fake handle
    
    hF = ::CreateFile(L"C:\\Windows\\System32\\notepad.exe", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
    ::CloseHandle(hF);
    ::CloseHandle(hF);          //Double closing
    

    但在这两种情况下,我是启用还是禁用它,还是不调用 SetProcessMitigationPolicy 总之,我两个都有例外 CloseHandle

    enter image description here

    那么我在这里遗漏了什么?

    0 回复  |  直到 7 年前