bool SetAdminPrivilege()
{
HANDLE TokenHandle;
if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&TokenHandle) == 0)
{
return 0;
}
LUID luid;
if(LookupPrivilegeValue(0,SE_DEBUG_NAME,&luid) == 0)
{
CloseHandle(TokenHandle);
return 0;
}
TOKEN_PRIVILEGES tp;
memset(&tp,0,sizeof(tp));
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(AdjustTokenPrivileges(TokenHandle,0,&tp,sizeof(tp),0,0) == 0)
{
CloseHandle(TokenHandle);
return 0;
}
CloseHandle(TokenHandle);
return 1;
}