Requesting debug privileges
Posted: Sat Feb 16, 2008 9:19 pm
source: http://www.experts-exchange.com/Program ... 03461.html
Code: Select all
#SE_DEBUG_NAME="SeDebugPrivilege" ; missing constant
Procedure EnableDebugPrivNT()
DebugValue.LUID;
tkp.TOKEN_PRIVILEGES
; Retrieve a handle of the access token
If Not OpenProcessToken_(GetCurrentProcess_(),#TOKEN_ADJUST_PRIVILEGES|#TOKEN_QUERY,@hToken)
ProcedureReturn #False;
EndIf
; Enable the SE_DEBUG_NAME privilege
If Not LookupPrivilegeValue_("",#SE_DEBUG_NAME,@DebugValue)
ProcedureReturn #False;
EndIf
NewState.TOKEN_PRIVILEGES
NewState\PrivilegeCount=1
NewState\Privileges[0]\Luid\HighPart=DebugValue\HighPart
NewState\Privileges[0]\Luid\LowPart=DebugValue\LowPart
NewState\Privileges[0]\Attributes=#SE_PRIVILEGE_ENABLED
AdjustTokenPrivileges_(hToken,#False,@NewState,SizeOf(TOKEN_PRIVILEGES),@PreviousState.TOKEN_PRIVILEGES,@ReturnLength)
If GetLastError_()<>#ERROR_SUCCESS
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure