【问题标题】:Meaning of flags in PROCESS_EXTENDED_BASIC_INFORMATION struct?PROCESS_EXTENDED_BASIC_INFORMATION 结构中标志的含义?
【发布时间】:2018-04-28 06:39:40
【问题描述】:

有人能解释一下PROCESS_EXTENDED_BASIC_INFORMATION 中的所有这些位代表什么吗?

typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
    SIZE_T Size;    // Ignored as input, written with structure size on output
    PROCESS_BASIC_INFORMATION BasicInfo;
    union {
        ULONG Flags;
        struct {
            ULONG IsProtectedProcess : 1;
            ULONG IsWow64Process : 1;
            ULONG IsProcessDeleting : 1;
            ULONG IsCrossSessionCreate : 1;
            ULONG IsFrozen : 1;
            ULONG IsBackground : 1;
            ULONG IsStronglyNamed : 1;
            ULONG IsSecureProcess : 1;
            ULONG IsSubsystemProcess : 1;
            ULONG SpareBits : 23;
        } DUMMYSTRUCTNAME;
    } DUMMYUNIONNAME;
} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION;

微软在this article 中显示了这个struct,但没有解释这些标志代表什么。

【问题讨论】:

  • 位标志的名称非常清楚。例如,您当然可以理解 IsWow64Process 的含义。
  • @DavidHeffernan:当然,如果你想让我列出那些我不清楚的。给你:IsProtectedProcessIsProcessDeletingIsCrossSessionCreateIsFrozenIsBackgroundIsStronglyNamedIsSubsystemProcess。对不起,如果我是唯一不知道这些意思的人。
  • 好吧,IsProtectedProcess 标识了一个受保护的进程,依此类推。这是简单的英语。所以我想下一个问题是你在寻找什么信息。以及为什么您认为可以在这个未记录的结构中找到答案。
  • 天哪,我想你已经掌握了这个窍门。那么,你在寻找什么信息。要求定义这 9 个不同的过程状态过于宽泛。您正在寻找哪些具体信息导致您使用此结构?
  • 用户对受保护进程的访问权限最小;即使调试权限也不会授予完全访问权限。常见的示例是系统进程,例如 smss.exe、csrss.exe、wininit.exe 和 services.exe。一旦终止,一个进程将处于删除状态(但由于有句柄而尚未收割)。跨会话创建是指父进程在不同的会话中——通常是会话 0 服务,例如任务调度程序。冻结的进程被挂起。 UWP 应用程序包可以在后台运行并具有强名称。 NT 子系统有一个服务器进程,例如 csrss.exe(每个会话)。

标签: c windows winapi kernel


【解决方案1】:

以下是 Microsoft 可能不希望您使用的高度无证的东西。这样做需要您自担风险。

PS。但是,你实际上有一个有趣的问题。所以仅用于普通教育:

  • IsProtectedProcess (0x001) 系统受保护进程:其他进程无法读取/写入其 VM 或向其中注入远程线程。 (旧样式。如果我没记错的话,它是从 XP SP3 开始提供的。)

  • IsWow64Process (0x002) WOW64 进程,或在 64 位 Windows 上运行的 32 位进程。

  • IsProcessDeleting (0x004) 进程已终止,但有打开的句柄 - 这是一个非常短暂的阶段。 (只有当您是内核驱动程序时,您才会对此感兴趣。)

  • IsCrossSessionCreate (0x008) 已跨终端会话创建进程。 例如:阅读CreateProcessAsUser 了解详情。

  • IsFrozen (0x010) Immersive process 已挂起(仅适用于 UWP 进程。)例如,如果用户将沉浸式进程移至后台或将其最小化,则可以将其挂起。主要用于省电。 More info.

  • IsBackground (0x020) 沉浸式进程处于后台任务模式。 UWP 进程可能会暂时切换到执行background task。主要用于省电。

  • IsStronglyNamed (0x040) UWP 强命名进程。 UWP 包经过数字签名。可以跟踪对包内文件的任何修改。 这通常意味着如果包签名被破坏,UWP 应用将无法启动。

  • IsSecureProcess (0x080) Isolated User Mode 进程 - Windows 10 中的新安全模式,对可以“利用”此进程的内容有更严格的限制。

    李>
  • IsSubsystemProcess (0x100) 当进程子系统的类型不是Win32时设置(如*NIX,如Ubuntu。)对,你没看错,可以@987654327 @ 在 Windows 10 上原生。(Ref1Ref2。)

PS2。我愿意更正,如果有的话......

【讨论】:

  • 受保护的进程是added in Vista 作为一种限制访问的方式,即使是调试权限也无法回避。该系统在 Windows 8 中扩展到受保护的轻进程 (PPL),它引入了签名者保护级别:无、Authenticode、CodeGen、Antimalware、Lsa、Windows、WinTcb、WinSystem 和 App。通常,在较高签名者级别运行的进程支配较低级别的进程。受保护的进程还会根据进程SignatureLevel 限制DLL 加载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多