[发明专利]一种用于枚举系统进程的方法及装置有效
申请号: | 201210362962.2 | 申请日: | 2012-09-25 |
公开(公告)号: | CN102945346A | 公开(公告)日: | 2013-02-27 |
发明(设计)人: | 张辉;陈擎月 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京市德权律师事务所 11302 | 代理人: | 刘杰 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 枚举 系统 进程 方法 装置 | ||
1.一种用于枚举系统进程的方法,其特征在于,包括:
获取当前进程的私有句柄表;
遍历该当前进程的私有句柄表与其它进程的私有句柄表形成的句柄表链,获得其它进程私有句柄表;
根据所述获得的其它进程的私有句柄表,获取每一私有句柄表所对应的进程;
集合所获得的所有进程,形成系统进程集合。
2.根据权利要求1所述的用于枚举系统进程的方法,其特征在于,所述获取该当前进程的私有句柄表包括:
获取指向当前进程的指针;
由所述当前进程的指针偏移获得当前进程的私有句柄表指针;
根据所述当前进程的私有句柄表指针定位到该当前进程的私有句柄表。
3.根据权利要求2所述的用于枚举系统进程的方法,其特征在于,所述获取指向当前进程的指针包括:
通过PsGetCurrentProcess()或IoGetCurrentProcess()获得当前进程的指针。
4.根据权利要求2所述的用于枚举系统进程的方法,其特征在于,所述由所述当前进程的指针偏移获得当前进程的私有句柄表指针的步骤中,偏移的步长由win系统版本决定。
5.根据权利要求1所述的用于枚举系统进程的方法,其特征在于,所述遍历该当前进程的私有句柄表与其它进程的私有句柄表形成的句柄表链,获得其它进程私有句柄表包括:
记录所述当前进程的私有句柄表的地址;
由该当前进程的私有句柄表指针偏移获取私有句柄表链上相邻进程的私有句柄表;
判断偏移后进程的私有句柄表地址是否与记录的当前进程的私有句柄表的地址相同;若是,终止遍历;
若否,按照与前述偏移相同的方向继续执行指针偏移获取私有句柄表链上的其它进程私有句柄表;直到偏移后获得进程私有句柄表地址与记录的当前进程私有句柄表的地址相同为止。
6.根据权利要求5所述的用于枚举系统进程的方法,其特征在于,所述偏移的步长根据win系统的版本而确定。
7.根据权利要求1所述的用于枚举系统进程的方法,其特征在于还包括:对于所述获得系统的进程中的至少一个进程,按照该进程所在的SessionProcessLinks链表再做遍历,并将获得的进程表与所述获得系统的进程集合合并。
8.根据权利要求1所述的用于枚举系统进程的方法,其特征在于还包括:对于所述获得系统的进程中的至少一个进程,按照该进程所在Vm.WorkingSetExpansionLinks链表再做遍历,并将获得的进程表与所述获得系统的进程集合合并。
9.根据权利要求1所述的用于枚举系统进程的方法,其特征在于还包括如下步骤:
将获取的当前进程集合与Windows任务管理器的进程表比对;
找出不同于Windows任务管理器的进程表中的进程;
将所述找出的进程向用户发送提示消息或发送报警。
10.一种用于枚举系统进程的装置,其特征在于,包括:
句柄表获取单元,用于获取该当前进程的私有句柄表;
遍历单元,用于遍历该当前进程的私有句柄表与其它进程的私有句柄表形成的句柄表链,获得其它进程私有句柄表;
执行单元,用于根据所述获得的其它进程的私有句柄表,获取每一私有句柄表所对应的进程;
集合单元,用于集合所获得的所有进程,形成系统进程集合。
11.根据权利要求10所述的用于枚举系统进程的装置,其特征在于,所述句柄表获取单元包括:
进程指针获取单元,用于获取指向当前进程的指针;
句柄表指针获取单元,用于由所述当前进程的指针偏移获得当前进程的私有句柄表指针;
定位单元,用于根据所述当前进程的私有句柄表指针定位到该当前进程的私有句柄表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210362962.2/1.html,转载请声明来源钻瓜专利网。