- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
您好!
当我尝试在使用 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/
我是一名优秀的程序员,十分优秀!