WIN API用户权限C++

问题描述:

我试图查看用户是否具有SeLoadDriver权限。我已经得到了PLUID:WIN API用户权限C++

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

但现在我不知道怎么去从PLUID说明该用户,还是不行,特权一个bool。我已经阅读了相关的方法,但它认为这可能是直接从PLUID值中获取该方法的一种简单方法。

谢谢

这是一个比这更多的参与。

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

请注意,当您检查启用的权限时,您还应该检查您正在检查的Attributes中是否设置了SE_PRIVILEGE_REMOVED;同时拥有SE_PRIVILEGE_REMOVEDSE_PRIVILEGE_ENABLED的特权已被删除且未启用...