0

我已经按照微软关于如何使用 SeDebugPrivilege 获得任何进程的句柄来 获得SE_DEBUG我的进程令牌的权限。

但是,当尝试以完全权限打开句柄时,我收到( )MsMpEng.exe的错误代码。c0000022STATUS_ACCESS_DENIED

我想知道我是否犯了错误,或者根本不可能获得该进程的访问权限级别。

我打开 Defender 进程句柄的代码如下。此块位于将SE_DEBUG权限添加到我的令牌的块之后。

if (Process32First(hSnap, &pt))
{
    do {
        if (!strcmp(pt.szExeFile, "MsMpEng.exe"))
        {
            printf("%d\n", pt.th32ProcessID);
            OBJECT_ATTRIBUTES oa = { sizeof(oa), 0, 0, 0, 0 };
            CLIENT_ID pid = { (HANDLE)pt.th32ProcessID, NULL };
            NTSTATUS status = NtOpenProcess(&hDef, PROCESS_TERMINATE, &oa, &pid);
            if (status == STATUS_SUCCESS)
            {
                printf("Handle to defender opened!");
                NtClose(hDef);
            }
            else
                printf("%x", status);
        }

    } while (Process32Next(hSnap, &pt));
}
4

0 回答 0