在XP里提升自己的程序以获得特定的权限
来源:互联网 发布:淘宝店铺优惠如何设置 编辑:程序博客网 时间:2024/06/15 11:00
''******************************************************''提升权限''---------------------------------------------------''鬼龙之舞''2003-12-21''******************************************************Private Type LUID
lowpart As Long
highpart As LongEnd TypePrivate Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As LongEnd TypePrivate Type TOKEN_PRIVILEGES
PrivilegeCount As Long ''权限的个数n
Privileges(0) As LUID_AND_ATTRIBUTES ''如果要多个权限,数组改为(n-1)个元素End TypePrivate Declare Function GetCurrentProcess Lib "kernel32" () As LongPrivate Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As LongPrivate Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As LongPrivate Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, ByVal PreviousState As Any, ReturnLength As Long) As LongConst SE_PRIVILEGE_ENABLED = &H2
Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"Const SE_DEBUG_NAME = "SeDebugPrivilege"Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"Const SE_INCREASE_QUOTA_NAME = ("SeIncreas=otaPrivilege")
Const SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege")
Const SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege")
Const SE_TCB_NAME = ("SeTcbPrivilege")
Const SE_SECURITY_NAME = ("SeSecurityPrivilege")
Const SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege")
Const SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege")
Const SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege")
Const SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege")
Const SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege")
Const SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege")
Const SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege")
Const SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege")
Const SE_BACKUP_NAME = ("SeBackupPrivilege")
Const SE_RESTORE_NAME = ("SeRestorePrivilege")
Const SE_AUDIT_NAME = ("SeAuditPrivilege")
Const SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege")
Const SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege")
Const SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege")
Public Sub GetMorePrivilege() ''取得[调试权限],取得这个权限后,可以结束几乎所有的进程
''如果要在NT里关机,则需要取SE_SHUTDOWN_NAME这个权限
Dim tLuid As LUID
Dim tp As TOKEN_PRIVILEGES, tpOld As TOKEN_PRIVILEGES
Dim hToken As Long
OpenProcessToken GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken LookupPrivilegeValue vbNullString, SE_DEBUG_NAME, tp.Privileges(0).pLuid tp.PrivilegeCount = 1 tp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
Call AdjustTokenPrivileges(hToken, False, tp, 0&, 0&, 0&)
End Sub
lowpart As Long
highpart As LongEnd TypePrivate Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As LongEnd TypePrivate Type TOKEN_PRIVILEGES
PrivilegeCount As Long ''权限的个数n
Privileges(0) As LUID_AND_ATTRIBUTES ''如果要多个权限,数组改为(n-1)个元素End TypePrivate Declare Function GetCurrentProcess Lib "kernel32" () As LongPrivate Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As LongPrivate Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As LongPrivate Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, ByVal PreviousState As Any, ReturnLength As Long) As LongConst SE_PRIVILEGE_ENABLED = &H2
Const TOKEN_ADJUST_PRIVILEGES = &H20
Const TOKEN_QUERY = &H8
Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"Const SE_DEBUG_NAME = "SeDebugPrivilege"Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"Const SE_INCREASE_QUOTA_NAME = ("SeIncreas=otaPrivilege")
Const SE_UNSOLICITED_INPUT_NAME = ("SeUnsolicitedInputPrivilege")
Const SE_MACHINE_ACCOUNT_NAME = ("SeMachineAccountPrivilege")
Const SE_TCB_NAME = ("SeTcbPrivilege")
Const SE_SECURITY_NAME = ("SeSecurityPrivilege")
Const SE_TAKE_OWNERSHIP_NAME = ("SeTakeOwnershipPrivilege")
Const SE_LOAD_DRIVER_NAME = ("SeLoadDriverPrivilege")
Const SE_SYSTEM_PROFILE_NAME = ("SeSystemProfilePrivilege")
Const SE_SYSTEMTIME_NAME = ("SeSystemtimePrivilege")
Const SE_PROF_SINGLE_PROCESS_NAME = ("SeProfileSingleProcessPrivilege")
Const SE_INC_BASE_PRIORITY_NAME = ("SeIncreaseBasePriorityPrivilege")
Const SE_CREATE_PAGEFILE_NAME = ("SeCreatePagefilePrivilege")
Const SE_CREATE_PERMANENT_NAME = ("SeCreatePermanentPrivilege")
Const SE_BACKUP_NAME = ("SeBackupPrivilege")
Const SE_RESTORE_NAME = ("SeRestorePrivilege")
Const SE_AUDIT_NAME = ("SeAuditPrivilege")
Const SE_SYSTEM_ENVIRONMENT_NAME = ("SeSystemEnvironmentPrivilege")
Const SE_CHANGE_NOTIFY_NAME = ("SeChangeNotifyPrivilege")
Const SE_REMOTE_SHUTDOWN_NAME = ("SeRemoteShutdownPrivilege")
Public Sub GetMorePrivilege() ''取得[调试权限],取得这个权限后,可以结束几乎所有的进程
''如果要在NT里关机,则需要取SE_SHUTDOWN_NAME这个权限
Dim tLuid As LUID
Dim tp As TOKEN_PRIVILEGES, tpOld As TOKEN_PRIVILEGES
Dim hToken As Long
OpenProcessToken GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken LookupPrivilegeValue vbNullString, SE_DEBUG_NAME, tp.Privileges(0).pLuid tp.PrivilegeCount = 1 tp.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
Call AdjustTokenPrivileges(hToken, False, tp, 0&, 0&, 0&)
End Sub
- 在XP里提升自己的程序以获得特定的权限
- 在XP里提升自己的程序以获得特定的权限
- delphi编写的程序如何在win7下提升权限
- 获得自己程序的版本
- 获得自己程序的版本
- 在特定的action里使用validates
- 提升ASP.NET程序的权限
- 提升ASP.NET程序的权限
- windows 程序权限的提升方法
- 为编写的Windows程序提升权限
- 为编写的Windows程序提升权限
- 怎么在Tomcat里发布自己的程序? [转载]
- 如何在Tomcat里发布自己的程序
- 在自己的图形界面里调用命令行程序
- 在自己的图形界面里调用命令行程序
- 在Android程序里显示自己的图片
- 修改他人程序,在请求里添加自己的用户
- 提升XP的性能
- 明天你来自己做外挂
- tomcat中的路径实践
- 用VB写下载者最短代码
- JavaPhone API和开发要点
- 关于单元测试自动打桩问题
- 在XP里提升自己的程序以获得特定的权限
- javascript日期比较
- C#的委托
- 开天劈地博一客
- 一些网站地址备份|APPEND
- sizeof操作符
- JavaScript不同监听事件的方法
- SMTP协议简介 (Simple Mail Transfer Protocol)
- 用VB实现“百叶窗”的图形特效