【问题标题】:How does Process Explorer enumerate all process names from an XP Guest account?Process Explorer 如何枚举 XP Guest 帐户中的所有进程名称?
【发布时间】:2011-01-15 17:43:49
【问题描述】:

我正在尝试枚举 所有 正在运行的进程 EXE 名称,并且在 XP Guest 帐户上尝试此操作时偶然发现。我可以使用 EnumProcesses 枚举所有进程 ID,但是当我尝试使用 PROCESS_QUERY_INFORMATION 或 PROCESS_VM_READ 的 OpenProcess 时,函数失败。

我在 XP Guest 帐户下启动了 Process Explorer,它能够枚举所有进程名称(尽管正如预期的那样,来自 Guest 用户空间之外的进程的大多数其他信息不存在)。

那么,我的问题是,如何复制 Process Explorer 的魔法来获取服务的进程名称以及在访客帐户用户空间之外运行的其他进程?

【问题讨论】:

  • 嗯...对此知之甚少,但您确定 Process Explorer 以访客权限运行(因此与您的程序处于同一位置) - 也许它的“魔法”以管理方式运行即使它是由客人启动的,也享有权利。
  • GetLastError 告诉你什么?
  • 是的,它肯定是作为来宾帐户进程运行的,具有与我的 IDE 相同的权限。
  • David,该函数返回“访问被拒绝”。错误。

标签: c++ windows winapi vb6 process


【解决方案1】:

我假设 Process Explorer 使用 NtQuerySystemInformation 和参数 SystemProcessInformation 来获取进程列表。有关代码示例,请参阅my old answer。此外,函数NtQueryInformationProcess 将用于获取更多信息。

顺便说一句,如果您在Dependency Walker 下启动 Process Explorer(菜单“Profile”/“Start Profiling”或 F7),那么您将看到 Process Explorer 真正使用 NTDLL 的所有函数。动态链接库。可以看到NtQuerySystemInformationNtQueryInformationProcess真的会用到。

【讨论】:

  • Oleg,谢谢,这为我提供了有关进程的更多信息,并且存储在 UNICODE_STRING 中的进程名称比 PROCESSENTRY32 中返回的字符串更干净(至少在 VB6 中),后者返回了一个带有空字符的字符串和额外的废话信息。
【解决方案2】:

NtQuerySystemInformation 几乎没有记录,并且“在未来的 Windows 版本中可能会被更改或不可用”CreateToolhelp32Snapshot 已完整记录并应该为您提供图像名称。

【讨论】:

  • 安德斯,谢谢,这是一个有效的答案,我不知道为什么我不去检查 PROCESSENTRY32 的其他成员。
【解决方案3】:

当一个进程启动时,它会被分配一组基本的访问权限。某些 API 调用需要额外的权限才能成功完成。具体来说,OpenProcess 在某些情况下可能需要SeDebugPrivilege 特权。您可以在此处找到如何修改进程令牌以启用额外权限的示例:Enabling and Disabling Privileges in C++

【讨论】:

  • 这意味着,正如预期的那样,Process Explorer 正在使用其他方法来枚举进程名称,因为它不能在受限的 Guest 帐户下启用 SeDebugPrivilege 运行。
  • @Joe:进程名是指可执行文件名吗?作为EnumProcesses 的替代品,tool help library 可以为您提供类似的信息。
【解决方案4】:

GetProcessImageFileName 从 Vista 开始只需要 PROCESS_QUERY_LIMITED_INFORMATION,但在 XP 上确实需要 PROCESS_QUERY_INFORMATION。

您不应该也绝对不能从访客帐户 PROCESS_VM_READ 获取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2011-05-23
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多