[發明專利]一種用于枚舉系統進程的方法及裝置有效
| 申請號: | 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.szxzyx.cn/pat/books/201210362962.2/1.html,轉載請聲明來源鉆瓜專利網。





