我想创建一个具有有限权限的C++程序。我在互联网上进行了一些研究,发现必须创建一个 token ,然后使用AdjustTokenPrivileges()方法更改其特权。

但是,我不太了解该怎么做。有人可以为我提供一个如何创建 token 和禁用其特权的示例吗?谢谢 :)

最佳答案

您是否在Executing Privileged Operations Using C++上查看了示例?似乎您只需要在使用GetTokenInformation()函数后弄清楚哪些标记是哪个,然后禁用其中的一些即可。

[编辑]
详细解释。

  • 第一次调用GetTokenInformation()可以获取 token 特权信息对象的长度(以字节为单位)。
  • 然后,您实际上在堆上构建了该大小的缓冲区。
  • 第二个调用检索 token 信息对象并将其存储在缓冲区中。
  • 然后,您将缓冲区重新投射到TOKEN_PRIVILEGES *,这使您可以正确解释它。
  • 然后,您遍历此对象的Privileges成员并将不同的属性设置为允许。

  • 这是specifics about the TOKEN_PRIVILEDGES structure。对于Priviledges数组的每个成员,您可以使用LookupPrivilegeName查找特权的名称。

    这是Priviledge names and descriptions的列表。

    知道特权是什么(即通过检查名称)后,可以将Priviledges [i]成员的属性设置为以下一项:
  • SE_PRIVILEGE_ENABLED
  • SE_PRIVILEGE_ENABLED_BY_DEFAULT
  • SE_PRIVILEGE_REMOVED
  • SE_PRIVILEGE_USED_FOR_ACCESS

  • 就您而言,我认为这将是第三位。

    关于c++ - 使用 token 和特权进行程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13291292/

    10-12 22:53