加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

OpenProcess:仅在Windows 8.1上访问被拒绝错误

发布时间:2020-12-14 01:57:16 所属栏目:Windows 来源:网络整理
导读:我有一个调整SeDebugPrivilege的程序,然后开始迭代系统进程并为它们调用OpenProcess(并做其他事情,但现在并不重要).此外,程序当然也以管理员模式运行.在 Windows XP和 Windows 7上,它可以正常工作,但在Windows 8.1上,使用ERROR_ACCESS_DENIED(5)的以下系统进
我有一个调整SeDebugPrivilege的程序,然后开始迭代系统进程并为它们调用OpenProcess(并做其他事情,但现在并不重要).此外,程序当然也以管理员模式运行.在 Windows XP和 Windows 7上,它可以正常工作,但在Windows 8.1上,使用ERROR_ACCESS_DENIED(5)的以下系统进程的OpenProcess失败:smss.exe,csrss.exe,services.exe.正如我所知,使用SeDebugPrivilege,我应该能够打开这些进程并为它们检索句柄.有没有人有线索,只有在Windows 8.1上才会出现这种错误?

(无论如何,我对CreateToolhelp32Snapshot的相同进程有相同的错误)

解决方法

Windows 8.1引入了 system protected process的概念.这在第三方反恶意软件软件的上下文中有记录,但是假设它也用于保护特别关键的系统进程似乎是合理的.

受系统保护的进程是Windows Vista中引入的Protected Process mechanism(Microsoft Word文档)的扩展,作为DRM措施.

即使使用调试权限,也无法获取受保护进程的任何访问权限:

>删除
> READ_CONTROL
> WRITE_DAC
> WRITE_OWNER
> PROCESS_CREATE_THREAD
> PROCESS_DUP_HANDLE
> PROCESS_QUERY_INFORMATION
> PROCESS_SET_QUOTA
> PROCESS_SET_INFORMATION
> PROCESS_VM_OPERATION
> PROCESS_VM_READ
> PROCESS_VM_WRITE

您仍然可以通过请求PROCESS_QUERY_LIMITED_INFORMATION访问权限来打开该流程.根据文档,还允许SYNCHRONIZE和PROCESS_TERMINATE访问.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读