【技术实现步骤摘要】
本专利技术涉及计算机
,特别是涉及一种用于枚举系统进程的方法。本专利技术还涉及一种用于枚举系统进程的装置。
技术介绍
Windows任务管理器可以枚举出系统当前的进程,并能够根据需要选择终止进程。为管理系统进程提供了很大的便利。Windows任务管理器枚举系统当前进程是通过其Native API函数ZwQuerySystemInfomation来操作进程活动链表来实现的。具体的过程如下首先,获取当前任一进程的指针,例如可以通过PsGetCurrentProcessO来获取当前进程的PEPR0CESS指针。然后定位到记录该当前进程与其它进程链接信息的Activelist处,具体的操作方式为ActiveList = pCurrentEprocess+0x88,即当前进程指针移动一定的步长。其中0x88为winxp sp3下Activelist与pCurrentEprocess的步长,在不同win操作系统时该步长并不相同。接着,以所定位的当前进程的Activelist遍历整个进程活动链表(Activelistlink)上每一进程的数据结构,即可获得当前的存在于进程活动链表的所有进程。如上所述,因为windows任务管理器是基于ZwQuerySystemInformation来实现的,所以如果将进程对象从进程活动链表中移除,那么调用NtQuerySystemInfomation来枚举进程的任务管理器TaskMgr. exe中就不会看到目标进程了。同时,Windows的任务调度分配器使用的另一的数据结构,也就是说,进程是否被调度执行与进程活动链表无关,不会因为从进程 ...
【技术保护点】
一种用于枚举系统进程的方法,其特征在于,包括:获取微软客户端和服务端运行时子系统进程对象的数据结构;获取所述数据结构中的对象表指向的句柄表;遍历所述句柄表的所有句柄表项,获得每一句柄表项所指向的进程对象,进而获得每一进程对象所对应的进程;集合所获得的所有进程,形成系统进程集合。
【技术特征摘要】
1.一种用于枚举系统进程的方法,其特征在于,包括 获取微软客户端和服务端运行时子系统进程对象的数据结构; 获取所述数据结构中的对象表指向的句柄表; 遍历所述句柄表的所有句柄表项,获得每一句柄表项所指向的进程对象,进而获得每一进程对象所对应的进程; 集合所获得的所有进程,形成系统进程集合。2.根据权利要求I所述的用于枚举系统进程的方法,其特征在于,所述获取微软客户端和服务端运行时子系统进程对象的数据结构包括 获取当如进程的私有句柄表;· 遍历该当前进程的私有句柄表与其它进程的私有句柄表形成的句柄表链,获得其它进程私有句柄表; 根据所述获得的其它进程的私有句柄表,获取私有句柄表所对应的进程对象的数据结构;直至获取所述微软客户端和服务端运行时子系统进程对象的数据结构为止。3.根据权利要求I所述的用于枚举系统进程的方法,其特征在于,所述获取微软客户端和服务端运行时子系统进程对象的数据结构包括 获取系统进程和线程对象句柄表; 遍历所述系统进程和线程对象句柄表中进程对象体指针指向的进程对象,获得相应的进程对象的数据结构,直至获取所述微软客户端和服务端运行时子系统进程对象的数据结构为止。4.根据权利要求I所述的用于枚举系统进程的方法,其特征在于,所述获取所述数据结构中的对象表指向的句柄表包括 在所述数据结构中由起始位置偏移固定的步长获取所述数据结构中的对象表指向的句柄表。5.根据权利要求I所述的用于枚举系统进程的方法,其特征在于,所述遍历所述句柄表的所有句柄表项,获得每一句柄表项所指向的进程对象包括 获取所述句柄表层数; 若获取的句柄表层数为一层,按照固定的步长遍历该层每一句柄表项,并根据每一句柄表项中的指向进程对象的成员指针,获取其进程对象; 若获取的句柄表层数大于一层,则首先指向句柄表最高层,由最高层按照固定步长遍历该层每一句柄表项;并获取每一句柄表项中的指向相邻下层句柄表项的成员指针;重复执行遍历每一层的句柄表项,直至最下层;并由该最下层的每一句柄表项中的指向进程对象的成员指针,获取其进程对象。6.根据权利要求5所述的用于枚举系统进程的方法,其特征在于,所述获取所述句柄表层数包括 读取句柄表中TableCode值的后两位; 根据所述后两位判断句柄表层数。7.根据权利要求5所述的用于枚举系统进程的方法,其特征在于,所述首先指向句柄表最闻层包括 获取句柄表中TableCode指针;将所述TableCode指针定位到句柄表最高层。8.根据权利要求I所述的用于枚举系统进程的方法,其特征在于还包括对于所述获得系统的进程中的至少一个进程,按照该进程所在的SessionProcessLinks链表再做遍历,并将获得的进程表与所述获得系统的进程集合合并。9.根据权利要求I所述的用于枚举系统进程的方法,其特征在于还包括对于所述获得系统的进程中的至少一个进程,按照该进程所在Vm. WorkingSetExpansionLinks链表再做遍历,并将获得的进程表与所述获得系统的进程集合合并。10.根据权利要求I所述的用于枚举系统进程的方法,其特征在于,还包括 将获取的进程集合与Windows任务管理器的进程表比对; 找出不同于Windows任务管理器的进程表中的进程;以所述找出的进程作为内容向用户发送或者向用户发送提示消息或报警。11.一种用于枚举系统进程的装置,其特征在于,包括 csrss进...
【专利技术属性】
技术研发人员:张辉,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。