本帖最后由 pusofalse 于 2011-10-18 10:37 编辑
不要用这个库了,用lsasecur.au3,此处下载:http://www.autoitx.com/thread-20442-1-1.html
#RequireAdmin
#include <lsasecur.au3>
; 将自身进程提升为系统级权限。
If @UserName <> "SYSTEM" Then
_SeCreateSystemProcess(@AutoItExe & " " & $CmdLineRaw)
Exit
EndIf
; 获取explorer.exe进程的安全令牌,如果explorer.exe所属用户为Administrator,那么新创建的进程也是Administrator。如果explorer.exe为Guest,那么新进程也将是Guest。
Local $hToken = _SeOpenProcessToken("explorer.exe")
; 模拟explorer.exe进程的用户登录,此时本进程的权限会降低/提升到 同explorer.exe一样的权限。
_SeImpersonateLoggedOnUser($hToken)
; 使用explorer.exe的安全令牌创建notepad.exe进程。函数将返回进程/线程的句柄和ID。
Local $tProcess = _SeCreateUserProcess($hToken, "C:\WINDOWS\notepad.exe")
If ($tProcess == 0) Then
MsgBox(48, "Error", _SeFormatMsg())
Else
_SeCloseHandle( DllStructGetData($tProcess, "Process"))
_SeCloseHandle( DllStructGetData($tProcess, "Thread"))
MsgBox(48, "OK", "进程ID:" & DllStructGetData($tProcess, "ProcessID"))
EndIf
; 恢复本进程原有的权限。
_SeRevertToSelf()
_SeCloseHandle($hToken)
_SeCreateUserProcess是一个异常强大的函数,调用这个函数可以创建任意用户、任意权限的进程。最重要的是它的第一个参数$hToken,将这个参数设为受限令牌的句柄,那么新创建的进程就不能执行一些特权操作,可以借此达到反病毒的效果。 |