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

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

但是现在我不确定如何从PLUID中获取 bool(boolean) 值,说明用户是否具有特权。我已经阅读了相关的方法,但它认为这可能是从PLUID值直接获取此方法的简便方法。

谢谢

最佳答案

比这更复杂。

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

请注意,在检查已启用的特权时,还应检查要检查的SE_PRIVILEGE_REMOVED中未设置Attributes;同时删除了SE_PRIVILEGE_REMOVEDSE_PRIVILEGE_ENABLED的特权,并且未启用...

09-06 07:00