近來找到一個行程監控小工具,想學習一下,蠻不錯的。用VC6.0編譯沒有問題,但是運行也就是除錯時卻說could not set SeDebugPrivilege some options may not work。
關于這個我也找到了一段用于提升權限的代碼,看著應該對的,但是我還是不知道該如何做,希望你們能幫幫我,非常感謝!
uj5u.com熱心網友回復:
在開始的時候提升,DebugPrivilege(SE_DEBUG_NAME, TRUE);在結束的時候還原,DebugPrivilege(SE_DEBUG_NAME, FALSE);
bool DebugPrivilege(const char *PName,BOOL bEnable)
{
BOOL bResult = TRUE;
HANDLE hToken;
TOKEN_PRIVILEGES TokenPrivileges;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken))
{
bResult = FALSE;
return bResult;
}
TokenPrivileges.PrivilegeCount = 1;
TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
LookupPrivilegeValue(NULL, PName, &TokenPrivileges.Privileges[0].Luid);
AdjustTokenPrivileges(hToken, FALSE, &TokenPrivileges, sizeof(TOKEN_PRIVILEGES), NULL, NULL);
if (GetLastError() != ERROR_SUCCESS)
{
bResult = FALSE;
}
CloseHandle(hToken);
return bResult;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/128931.html
標籤:進程/線程/DLL
