get Se debug privilege
| 104 | |
| 105 | //get Se debug privilege |
| 106 | NTSTATUS intel_driver::AcquireDebugPrivilege() { |
| 107 | |
| 108 | HMODULE ntdll = GetModuleHandleA("ntdll.dll"); |
| 109 | if (ntdll == NULL) { |
| 110 | return STATUS_UNSUCCESSFUL; |
| 111 | } |
| 112 | |
| 113 | ULONG SE_DEBUG_PRIVILEGE = 20UL; |
| 114 | BOOLEAN SeDebugWasEnabled; |
| 115 | NTSTATUS Status = nt::RtlAdjustPrivilege(SE_DEBUG_PRIVILEGE, TRUE, FALSE, &SeDebugWasEnabled); |
| 116 | if (!NT_SUCCESS(Status)) { |
| 117 | Log::Error("Failed to acquire SE_DEBUG_PRIVILEGE", false); |
| 118 | } |
| 119 | |
| 120 | return Status; |
| 121 | } |
| 122 | |
| 123 | NTSTATUS intel_driver::Load() { |
| 124 | srand((unsigned)time(NULL) * GetCurrentThreadId()); |