在XP里提升自己的程序以获得特定的权限
2014-02-12 16:00
387 查看
Private Type LUID
lowpart As Long
highpart As Long
End Type
Private Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End TypePrivate
Type TOKEN_PRIVILEGES
PrivilegeCount As Long ''权限的个数n
Privileges(0) As LUID_AND_ATTRIBUTES ''如果要多个权限,数组改为(n-1)个元素
End Type
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) 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 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 Long
Const 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")
lowpart As Long
highpart As Long
End Type
Private Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End TypePrivate
Type TOKEN_PRIVILEGES
PrivilegeCount As Long ''权限的个数n
Privileges(0) As LUID_AND_ATTRIBUTES ''如果要多个权限,数组改为(n-1)个元素
End Type
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) 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 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 Long
Const 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")
相关文章推荐
- 在XP里提升自己的程序以获得特定的权限
- 获得自己程序的版本
- 转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
- 转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
- 提自己程序的权限进行远程注入
- 让在vc6创建的程序中,控件可以随xp风格的改变而变化,不用再程序中添加代码来自己实现~
- UAC下的程序权限提升
- Win7如何提升为管理员权限,如何开机启动需要管理员权限的程序,解决win7开机不能自动运行的问题等
- 一个不错的小软件和一个不错的作者的主页:以管理员权限特定时间运行程序
- 提升本程序进程优先级和权限(VC++源代码)
- 转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
- 转载:如何指定程序在Vista上面需要提升权限运行(Elevated)
- delphi编写的程序如何在win7下提升权限
- 利用已有数据库配合ASP.NET2.0内置用户 角色 授权系统打造自己的权限分配程序(1)
- linux引导程序为什么要把自己加载到内存的7c00h这个特定的地方?
- 提升程序权限
- linux下获得root权限运行程序
- Windows服务(Windows Service,system权限)程序显示界面与用户交互(xp,win7通用)
- delphi7 编译的程序在win7下请求获得管理员权限的方法
- 转载:如何指定程序在Vista上面需要提升权限运行(Elevated)