BOOL EnableDebugPrivilege(BOOL fEnable)
{
BOOL fOK=FALSE;
HANDLE hToken = 0;
//打开指定进程的令牌环
BOOL Ret = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken);
if (Ret)
{
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
//查找 SE_DEBUG_NAME 对应的令牌值(SeDebugPrivilege)
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0;
//调整令牌对应权限
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
fOK=(GetLastError==ERROR_SUCCESS);
CloseHandle(hToken);
}
return(fOk);
}
UAC提权示例
最新推荐文章于 2025-03-02 02:15:10 发布