24 lines
818 B
C++
24 lines
818 B
C++
#include "tools.h"
|
|
namespace Tools {
|
|
auto Is64BitPorcess(HANDLE hProcess) -> bool {
|
|
BOOL bIsWow64 = false;
|
|
IsWow64Process(hProcess, &bIsWow64);
|
|
return bIsWow64 == false;
|
|
}
|
|
auto EnableDebugPrivilege(bool bEnable) -> bool {
|
|
bool fOK = FALSE; // Assume function fails
|
|
HANDLE hToken;
|
|
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES,
|
|
&hToken)) {
|
|
TOKEN_PRIVILEGES tp;
|
|
tp.PrivilegeCount = 1;
|
|
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
|
|
tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0;
|
|
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);
|
|
fOK = (GetLastError() == ERROR_SUCCESS);
|
|
CloseHandle(hToken);
|
|
}
|
|
return fOK;
|
|
}
|
|
}; // namespace Tools
|