首页
社区
课程
招聘
[原创]完成了无硬编码在windows7下遍历PspCidTable枚举进程~~~
发表于: 2010-3-9 17:04 6288

[原创]完成了无硬编码在windows7下遍历PspCidTable枚举进程~~~

2010-3-9 17:04
6288
我昨天在windbg下面探索了一下PspCidTable的结构,并找到了进程,

今天用程序完成,可惜windows7下面,几个结构都改掉了,

比如 object_header结构

lkd> dt _OBJECT_HEADER
nt!_OBJECT_HEADER
   +0x000 PointerCount     : Int4B
   +0x004 HandleCount      : Int4B
   +0x004 NextToFree       : Ptr32 Void
   +0x008 Lock             : _EX_PUSH_LOCK
   +0x00c TypeIndex        : UChar
   +0x00d TraceFlags       : UChar
   +0x00e InfoMask         : UChar
   +0x00f Flags            : UChar
   +0x010 ObjectCreateInfo : Ptr32 _OBJECT_CREATE_INFORMATION
   +0x010 QuotaBlockCharged : Ptr32 Void
   +0x014 SecurityDescriptor : Ptr32 Void
   +0x018 Body             : _QUAD

已经没有OBJECT_TYPE了,

取Object body的时候用了

ULONG pObject = (ULONG)(pTable1[i].Object) & 0xFFFFFFF8 | 0x80000000;

pObject其实就是EPROCESS了,

然后判断是否是进程,用了foreverbell_大牛的方法

BOOLEAN IsProcess(PVOID Eprocess)   
{   
     ULONG CurrentPeb = 0;   
     ULONG Peb = 0;   
     if (MmIsAddressValid(Eprocess))   
      {   
          CurrentPeb = (ULONG)PsGetProcessPeb(PsGetCurrentProcess()) & 0xFFFF0000;      
          Peb = (ULONG)PsGetProcessPeb(Eprocess) & 0xFFFF0000;   
         if (CurrentPeb == Peb) return TRUE;   
      }   
     return FALSE;   
}

最后取完整路径的时候没有使用EPROCESS->Peb->RTL_USER_PROCESS_PARAMETERS->FULL_IMAGE_NAME这种方法,硬编码比较多,

而是先用ObOpenObjectByPointer取得进程的句柄,然后ZwQueryInformationProcess->ProcessImageFileName的方法取得完整的路径,不过这个时候的路径是

\Device\HarddiskVolume2\XXX这个样子的,还需要转换成DosPath,即可完成


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
有意思吗?
2010-3-9 19:21
0
雪    币: 522
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
本来就不需要硬编码哦   WINDOWS一直都给有遍历PSPCID表的函数。  
2010-3-9 19:33
0
雪    币: 492
活跃值: (53)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
让各位大牛见笑了,⊙﹏⊙b汗
2010-3-9 22:40
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在debugman顶完,我再来这里顶
2010-3-10 10:28
0
雪    币: 356
活跃值: (38)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
6
很不错啊,学习了。
无硬编码的话我用ExEnumHandleTable
2010-3-12 09:29
0
游客
登录 | 注册 方可回帖
返回
//