首页
社区
课程
招聘
[求助]驱动怎么获取进程所属的用户
发表于: 2009-4-1 17:07 6365

[求助]驱动怎么获取进程所属的用户

2009-4-1 17:07
6365
在驱动中,我获取了进程eprocess结构,

有什么办法从这个结构中获取进程所属的用户,如system用户还是administrator用户等等。。。

恳请大侠指点指点。。

要是有段代码例子更好了。谢谢了

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (5)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
PsReferencePrimaryToken
ZwQueryInformationToken
2009-4-1 17:18
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Largely based off of undelete.c from sysinternals
BOOLEAN GetUserSIDFromProcess(EPROCESS *pProcess, UNICODE_STRING *pusSID)
{
    NTSTATUS status;
    ULONG RetLen;
    HANDLE hToken;
    PTOKEN_USER tokenInfoBuffer;
    PACCESS_TOKEN Token;
 
    Token = PsReferencePrimaryToken(pProcess);
 
    status = ObOpenObjectByPointer(Token, 0, NULL, TOKEN_QUERY, NULL, KernelMode, &hToken);
    ObDereferenceObject(Token);
 
    if(!NT_SUCCESS(status))
        return FALSE;
 
    // Get the size of the sid.
    status = ZwQueryInformationToken(hToken, TokenUser, NULL, 0, &RetLen);
    if(status != STATUS_BUFFER_TOO_SMALL) {
    ZwClose(hToken);
    return FALSE;
  }
 
    tokenInfoBuffer = (PTOKEN_USER)ExAllocatePool(NonPagedPool, RetLen);
    if(tokenInfoBuffer)
      status = ZwQueryInformationToken(hToken, TokenUser, tokenInfoBuffer, RetLen, &RetLen);
  
  if(!NT_SUCCESS(status) || !tokenInfoBuffer ) {
    DBGOUT(("Error getting token information: %x\n", status));
    if(tokenInfoBuffer)
            ExFreePool(tokenInfoBuffer);
    ZwClose(hToken);
    return FALSE;
  }
  ZwClose(hToken);
 
  status = RtlConvertSidToUnicodeString(pusSID, tokenInfoBuffer->User.Sid, FALSE);
  ExFreePool(tokenInfoBuffer);
 
  if(!NT_SUCCESS(status)) {
    DBGOUT(("Unable to convert SID to UNICODE: %x\n", status ));
    return FALSE;
  }
 
    return TRUE;
}
2009-4-1 17:29
0
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
学习一下。。
2009-4-1 19:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
进来学习一下
2009-4-2 12:01
0
雪    币: 182
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习学习!!
2009-4-2 13:04
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册