|
- function EnableDebugPrivilege: Boolean;
- function EnablePrivilege(hToken: Cardinal; PrivName: string;
- bEnable: Boolean): Boolean;
- var
- TP: TOKEN_PRIVILEGES;
- Dummy: Cardinal;
- begin
- TP.PrivilegeCount := 1;
- LookupPrivilegeValue(nil, PChar(PrivName), TP.Privileges[0].Luid);
- if bEnable then
- TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
- else
- TP.Privileges[0].Attributes := 0;
- AdjustTokenPrivileges(hToken, false, TP, SizeOf(TP), nil, Dummy);
- Result := GetLastError = ERROR_SUCCESS;
- end;
- var
- hToken: Cardinal;
- begin
- OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES, hToken);
- Result := EnablePrivilege(hToken, 'SeDebugPrivilege', true);
- CloseHandle(hToken);
- end;
复制代码
|
|