首页
社区
课程
招聘
[讨论]读取句柄表,
发表于: 2011-1-3 13:19 3904

[讨论]读取句柄表,

2011-1-3 13:19
3904
我用下面的代码区读取进程的句柄表,pExt->vCurrentPID为要读取的进程PID,

           pExt->vCurrentPID=(HANDLE)vBufferLen;
           Irp->IoStatus.Status=STATUS_SUCCESS;
           if(!NT_SUCCESS(rs))
           {
                   KdPrint(("Get PID Error...\n"));
                   Irp->IoStatus.Information=0;
                   IoCompleteRequest(Irp,IO_NO_INCREMENT);
                   return rs;
           }
           KdPrint(("CurrentPID=%u\n",pExt->vCurrentPID));
           //下面读取这个进程有多少个句柄
           PEPROCESS pe;
           rs=PsLookupProcessByProcessId(pExt->vCurrentPID,&pe);
           if(!NT_SUCCESS(rs))
           {
              KdPrint(("LookupProcess Failed...PID=%u\n",pExt->vCurrentPID));
          Irp->IoStatus.Information=0;
                  IoCompleteRequest(Irp,IO_NO_INCREMENT);
                  return rs;
           }
           char* pHandleTable=(char*)pe+0x0C4;//定位到句柄表信息
           int HandleCount=*(int*)(pHandleTable+0x03C);//句柄的个数(???为什么这里总是零呢??)
           ObfDereferenceObject(pe);

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1157
活跃值: (847)
能力值: ( LV8,RANK:150 )
在线值:
发帖
回帖
粉丝
2
找到错误了,指针
2011-1-3 15:36
0
游客
登录 | 注册 方可回帖
返回
//