如何检索进程权限(windows 驱动程序)?

How retrive Process Privilege (windows drivers)?

我的驱动程序中有一个 IRP 和 EPROCESS 对象 我想知道如何从这些文件中检索进程权限(如 normalAdministratorSYSTEM)结构 ?

 KPROCESSOR_MODE ProcessRequestorMode = pIrp->RequestorMode;
        UNICODE_STRING PRM;
        if (ProcessRequestorMode == KernelMode)
            status = RtlInitUnicodeStringEx(&PRM, L"Kernel-Mode");
        else
        {
            status = RtlInitUnicodeStringEx(&PRM, L"User-Mode");
            //////////////////////////TODO////////////////////
            //retrieving process previlage
            //////////////////////////////////////////////////
        }
        DBGMSG1("Processor Mode : %wZ   ", PRM);
        if (!NT_SUCCESS(status))
        {
            DBGMSG0("Can not convert RequestorMode to UNICODE_STRING\n");
            ASSERT(FALSE);
            return status;
        }

此信息存储在进程令牌中。
你可以使用 PsReferencePrimaryToken 如果该进程正在模拟,您可以改用 PsReferenceImpersonationToken。 之后,您只需使用 ZwQueryInformationToken.

查询 TokenUser 的令牌

祝你好运,
加布里埃尔