关于进程访问权限的问题
我得到以下场景:
进程 A 创建进程 B,然后 B 尝试使用 OpenProcess() 获取 A 的句柄。我希望 B 拥有 A 的 PROCESS_ALL_ACCESS 权限。
我应该如何实现这一点?
谢谢。
I got the following scenario:
Process A create process B, and then B try to get a handle of A with OpenProcess(). I want B to have PROCESS_ALL_ACCESS rights to A.
How should I achieve this?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于父级来说,最简单的方法可能是避免子级完全调用 OpenProcess。相反,让父级检索自身的句柄(它将自动拥有所有访问权限),然后使用 bInheritHandle = true 调用 DuplicateHandle。然后,当它创建进程 B 时,该句柄(具有对进程 A 的完全访问权限)将已在子进程中打开。进程A只需将句柄传递给进程B,进程B就可以使用它。
Probably the easiest way is for the parent to avoid the child having to call OpenProcess at all. Instead, have the parent retrieve a handle to itself (which will automatically have all access) and then call DuplicateHandle with bInheritHandle = true. Then when it creates process B, that handle (with full access to process A) will already be open in the child. Process A simply has to pass the handle to process B, and process B can use it.