7,763
社区成员
发帖
与我相关
我的任务
分享
Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8
Private Const WAR3_BREAK_ADDRESS = &H6F3AE20C
Private Type LUID_AND_ATTRIBUTES
Luid As Long
Attributes As Long
End Type
Private Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges() As LUID_AND_ATTRIBUTES
End Type
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Sub xxxx() '不知道你这个过程名字叫啥。。。。
Dim hCurrent As Long, hToken As Long, Luid As Long, ReturnLength As Long
Dim bRet As Boolean
Dim NewState As TOKEN_PRIVILEGES
Dim PreviousState As TOKEN_PRIVILEGES
hCurrent = GetCurrentProcess
bRet = (OpenProcessToken(hCurrent, TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken) <> 0)
bRet = (LookupPrivilegeValue(vbNullString, "SeDebugPrivilege", Luid) <> 0)
With NewState
.PrivilegeCount = 1
ReDim .Privileges(0)
.Privileges(0).Luid = Luid
.Privileges(0).Attributes = 2
End With
bRet = (AdjustTokenPrivileges(hToken, 0, NewState, 28, PreviousState, ReturnLength) <> 0)
Call CloseHandle(hToken)
End Sub