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

Zol*_*agy 5 windows winapi openprocess windows-8.1

我有一个调整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的相同进程有相同的错误)

Har*_*ton 5

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

受系统保护的进程是Windows Vista中引入的受保护进程机制(Microsoft Word文档)的扩展,作为DRM度量.

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

  • DELETE
  • 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访问来打开该过程.根据该文件,SYNCHRONIZEPROCESS_TERMINATE访问也允许.