1

我正在尝试查看用户是否具有 SeLoadDriver 权限。我有 PLUID :

    PLUID pld;
    LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, pld);

但是现在我不确定如何从 PLUID 中获取一个布尔值,说明用户是否拥有该权限。我已经阅读了相关的方法,但它认为这可能是一种直接从 PLUID 值中获取它的简单方法。

谢谢

4

1 回答 1

3

它比这更复杂一些。

首先,您需要获取进程令牌的权限集(通过调用GetTokenInformation()),然后扫描您从中获得的缓冲区(这是一个LUID_AND_ATTRIBUTES结构数组)以查找您从中获得的 LUID LookupPrivilegeValue()。然后,您可以使用LUID_AND_ATTRIBUTES您找到的并检查是否Attributes包含所需的标志(SE_PRIVILEGE_ENABLED在您的情况下)。

请注意,当您检查启用的权限时,您还应该检查您正在检查的未SE_PRIVILEGE_REMOVED设置的权限Attributes;具有两者SE_PRIVILEGE_REMOVEDSE_PRIVILEGE_ENABLED已被删除且未启用的特权...

于 2010-01-18T09:26:50.943 回答