gpt4 book ai didi

windows - 如果 ImpersonateSelf() 失败后的 RevertToSelf() 会致命吗?

转载 作者:可可西里 更新时间:2023-11-01 13:12:39 25 4
gpt4 key购买 nike

MSDN 说如果 RevertToSelf()失败程序应立即终止,否则它会继续以被模拟的客户端的名义运行,这是不合适的。现在假设我做

ImpersonateSelf( SecurityImpersonation );

并且调用成功,然后我调用 RevertToSelf(),后者失败了。线程继续以当前进程的权限运行。它也很糟糕吗?

最佳答案

我喜欢你的问题,MSDN 对此并不清楚。

我看了Programming Windows Security (Keith Brown) 第 112 到 117 页。ImpersonateSelf 通过调用

完成您可以自己完成的所有工作
  • OpenProcessToken
  • DuplicateTokenEx(...TokenImpersonation...)
  • 设置线程 token
  • 关闭句柄

虽然 RevertToSelf 只是对

的调用
SetThreadToken(0,0)

传递两个空参数指示该方法恢复到先前的标记。您不必处理模拟与主要 token 和 token 访问权限。调用总是会成功。

如果您查看 RpcRevertToSelf 函数的错误代码,您会看到与 RPC 相关的代码放在一边,唯一的失败模式是您没有模拟。

我说可以安全地假设 RevertToSelf(从与 ImpersonateSelf 相同的线程调用)总是会成功。

关于windows - 如果 ImpersonateSelf() 失败后的 RevertToSelf() 会致命吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com