给我们的exe提升debug权限,很多时候我们都需要用到。
bool AdjustProcessPrivileges(HANDLE hProcess, LPCTSTR PrivilegeName) {
HANDLE hToken;
bool bRet = false;
TOKEN_PRIVILEGES tkp = { 0 };
if (!OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {
goto Exit;
}
LookupPrivilegeValue(NULL, PrivilegeName, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), (PTOKEN_PRIVILEGES)NULL, 0);
bRet = true;
Exit:
return bRet;
}
调用的时候是:
AdjustProcessPrivileges(GetCurrentProcess(), SE_DEBUG_NAME);