[英]How to program kernel drivers for windows without visual studio?
[英]How retrive Process Privilege (windows drivers)?
我的驅動程序中有一個IRP和EPROCESS對象,我想知道如何從這些結構中檢索進程特權(例如normal或Administrator或SYSTEM )?
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的令牌。
祝好運,
加布里埃爾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.