修改进程权限api详解

获取进程权限令牌句柄

OpenProcessToken(ProcessHandle:THandle(进程句柄),TOKEN_ALL_ACCESS,hToken: THandle(获得的进程令牌句柄))

获取各种权限对应的ID

LookupPrivilegeValue(nil, 'SeDebugPrivilege'(权限的名字), Luid(获取的权限ID));

修改进程权限

AdjustTokenPrivileges(hToken:THandle(进程令牌句柄), false(是否关闭所有权限), tp: TTokenPrivileges(要修改的权限列表), SizeOf(tp), nil, rl:Cardinal(一般为0));

TTokenPrivileges结构详解

TTokenPrivileges(PrivilegeCount:DWORD(要修改的权限的个数),LUID_AND_ATTRIBUTES Privileges[](LUID_AND_ATTRIBUTES结构的数组))

LUID_AND_ATTRIBUTES 结构详解

LUID_AND_ATTRIBUTES(LUID Luid(权限ID), DWORD Attributes(一般设为SE_PRIVILEGE_ENABLED) )

程序范例

VerInfo.dwOSVersionInfoSize:=SizeOf(VerInfo);
GetVersionEx(VerInfo);
if VerInfo.dwPlatformId=VER_PLATFORM_WIN32_NT then
Begin
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
tkp.PrivilegeCount:= 1;
tkp.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0,nil, Nothing);
End;

各权限名字的含义:

• 从远程系统强制关机
请在事件具体信息中查找用户权限为 SeRemoteShutdownPrivilege 的事件。

• 提高日程安排优先级
请在事件具体信息中查找用户权限为 SeIncreaseBasePriorityPrivilege 的事件。具有此权限的用户可以修改进程优先级。

• 加载和卸载设备驱动程序
请在事件具体信息中查找用户权限为 SeLoadDriverPrivilege 的事件。具有此用户权限的用户可以加载特洛伊木马版本的设备驱动程序。

• 治理审核和安全日志
请在事件具体信息中查找用户权限为 SeSecurityPrivilege 的事件。具有此用户权限的用户可以查看和清除安全日志。

• 替换进程级令牌
请在事件具体信息中查找用户权限为 SeAssignPrimaryTokenPrivilege 的事件。具有此用户权限的用户可以更改与一个已启动子进程相关联的默认令牌。

• 还原文件和目录
请在事件具体信息中查找用户权限为 SeRestorePrivilege 的事件。

• 关闭系统
请在事件具体信息中查找用户权限SeShutdownPrivilege 的事件。具有此用户权限的用户可以关闭系统以开始新设备驱动程序的安装。

• 获取文件或其他对象的所有权
请在事件具体信息中查找用户权限为 SeTakeOwnershipPrivilege 的事件。具有此用户权限的用户可以通过获取 NTFS 文件系统磁盘上的对象或文件的所有权,来访问这些对象或文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值