gpt4 book ai didi

c++ - 其他用户帐户上的 OpenProcess iexplore.exe 因访问被拒绝而失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:59:26 25 4
gpt4 key购买 nike

我正在努力枚举所有用户的 iexplore.exe 实例。我能够获得机器上匹配进程的列表,但要识别用户,我需要使用 OpenProcess。这适用于我自己的实例,但即使以管理员身份运行和 EnableDebugPriv,我仍然收到访问被拒绝的消息。我错过了什么吗? iexplore.exe 是否受到某种保护?

这是我用于调试权限的内容:

void EnableDebugPriv()
{
HANDLE hToken;
LUID luid;
TOKEN_PRIVILEGES tkp;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);

if (!::LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid))
{
wprintf(_T("ERROR %u\n"),GetLastError());
CloseHandle(hToken);
return;
}

tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = luid;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

if (!::AdjustTokenPrivileges(hToken, false, &tkp, sizeof(tkp), NULL, NULL))
{
wprintf(_T("ERROR %u\n"),GetLastError());
CloseHandle(hToken);
return;
}

CloseHandle(hToken);
wprintf(_T("Should have worked"));
}

运行时没有出现错误。运行时出现ACCESS DENIED错误

hProcess = OpenProcess( PROCESS_QUERY_INFORMATION|PROCESS_VM_READ|PROCESS_TERMINATE , FALSE, pe32.th32ProcessID );

对于不属于我的进程。 “其他”用户是通过控制面板以正常方式在此计算机上创建的标准和 guest 帐户。任何想法将不胜感激。我卡住了!最终我想为用户提供关闭应用程序的能力,但即使只有 PROCESS_QUERY_LIMITED_INFORMATION 它也会失败。我还需要检查这是否是除 IE 之外的其他应用程序的问题。

更新 我最终让它工作了。错误是在 OpenProcessToken 中。我需要与我要求的不同的特权。

最佳答案

在 Windows Vista 及更高版本中,IE 作为低完整性进程以保护模式运行。 According to MSDN ,非 protected 进程限制了对 protected 进程的访问,包括 PROCESS_QUERY_INFORMATIONPROCESS_VM_READ 权限。

关于c++ - 其他用户帐户上的 OpenProcess iexplore.exe 因访问被拒绝而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com