我正在尝试查看用户是否具有 SeLoadDriver 权限。我有 PLUID :
PLUID pld;
LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, pld);
但是现在我不确定如何从 PLUID 中获取一个布尔值,说明用户是否拥有该权限。我已经阅读了相关的方法,但它认为这可能是一种直接从 PLUID 值中获取它的简单方法。
谢谢
我正在尝试查看用户是否具有 SeLoadDriver 权限。我有 PLUID :
PLUID pld;
LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, pld);
但是现在我不确定如何从 PLUID 中获取一个布尔值,说明用户是否拥有该权限。我已经阅读了相关的方法,但它认为这可能是一种直接从 PLUID 值中获取它的简单方法。
谢谢
它比这更复杂一些。
首先,您需要获取进程令牌的权限集(通过调用GetTokenInformation()
),然后扫描您从中获得的缓冲区(这是一个LUID_AND_ATTRIBUTES
结构数组)以查找您从中获得的 LUID LookupPrivilegeValue()
。然后,您可以使用LUID_AND_ATTRIBUTES
您找到的并检查是否Attributes
包含所需的标志(SE_PRIVILEGE_ENABLED
在您的情况下)。
请注意,当您检查启用的权限时,您还应该检查您正在检查的未SE_PRIVILEGE_REMOVED
设置的权限Attributes
;具有两者SE_PRIVILEGE_REMOVED
并SE_PRIVILEGE_ENABLED
已被删除且未启用的特权...