gpt4 book ai didi

c++ - 如何将 SECURITY_ATTRIBUTES 与 CreateProcess() 一起使用?

转载 作者:太空狗 更新时间:2023-10-29 21:30:08 24 4
gpt4 key购买 nike

您好!

当我尝试在使用 CreateProcess() 启动的线程上使用 GetThreadContext() 时,我收到错误 998: ERROR_NOACCESS

您可以在此处找到此问题的人为设计但有效的代码示例:http://pastebin.com/tamDhYza

根据有关“线程安全和访问权限”的 MSDN 文章,我的假设是我需要首先将 THREAD_GET_CONTEXT 属性传递到 CreateProcess() 的 lpThreadAttributes 参数中。此参数所需的类型是 LPSECURITY_ATTRIBUTES,它似乎是指向结构 SECURITY_ATTRIBUTES 的长指针。不幸的是,我并没有很幸运地弄清楚如何向这个结构添加权限。

谁能帮我指明正确的方向?

最佳答案

我认为您可能需要调整调用代码的权限,以便您可以访问远程进程。我怀疑在尝试获取远程线程上下文之前,您需要启用 SE_DEBUG_NAME 权限(请参阅 here )。我不确定,因为我通常使用调试 API 并使用 DEBUG_PROCESS 调用 CreateProcess(),无论如何都需要 SE_DEBUG_NAME...

如果您确实需要创建一个安全描述符,那么您正在做的就是创建一个 DACL(自主访问控制列表),它是一个填充有 ACL(访问控制列表)的 SECURITY_ATTRIBUTES 结构允许或拒绝各种主体(用户、计算机等)访问资源。这过去非常复杂,需要进行许多复杂的 API 调用,但现在要容易得多,请参阅 http://msdn.microsoft.com/en-us/library/ms717798(VS.85).aspx了解详情。

关于c++ - 如何将 SECURITY_ATTRIBUTES 与 CreateProcess() 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332584/

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