【问题标题】:Is it possible to get the "Image Path Name" of csrss.exe which is a SYSTEM process?是否可以获得作为系统进程的 csrss.exe 的“图像路径名称”?
【发布时间】:2011-08-01 19:12:43
【问题描述】:

windows 系统进程(本例在 Windows 7 中)“csrss.exe”作为 SYSTEM 进程运行,当我去(当然以编程方式)获取带有 pid、命令行和图像路径名称的进程列表时我没有得到命令行或图像路径名称的值,因为 Windows 不会让您为 SYSTEM 进程获取该信息(我相信)。

有没有办法从系统进程中获取图像路径名? Windows 真的会阻止您这样做吗?有解决办法吗?

更新:调用 ReadProcessMemory() 函数

[http://msdn.microsoft.com/en-us/library/aa915312.aspx]

【问题讨论】:

标签: windows-7 elevated-privileges


【解决方案1】:

使用CreateToolhelp32Snapshot 执行此操作的简单方法(比 ReadProcessMemory 容易得多,如果您知道在哪里查找也可以),您将在该 MSDN 页面上看到更多参考;

TH32CS_SNAPPROCESS 0x00000002

包括系统中的所有进程 在快照中。枚举 进程,请参阅Process32First

请注意,您可以使用 QueryFullProcessImageName 函数 检索全名 32 和 32 的可执行映像 64 位进程从 32 位 过程。

szExeFile 可执行文件的名称 进程的文件。要检索 可执行文件的完整路径,调用 Module32First 函数并检查 szExePath 的成员 MODULEENTRY32 结构是 回来。但是,如果调用 进程是 32 位进程,您必须 调用 QueryFullProcessImageName 检索完整路径的函数 64位的可执行文件 过程。

非常简单。

【讨论】:

  • 目前这不正确。微软关于 CreateToolhelp32Snapshot 的页面明确表示它不适用于 Csrss 进程(可能也不适用于其他类似的进程)。要完成这项工作,您需要启用 SeDebugPrivilege。看到这个答案:stackoverflow.com/questions/63610391/get-path-of-csrss-exe
猜你喜欢
  • 2020-12-16
  • 2012-06-08
  • 2015-08-15
  • 1970-01-01
  • 2016-05-09
  • 2012-01-27
  • 1970-01-01
  • 2020-07-17
  • 2012-07-19
相关资源
最近更新 更多