[发明专利]一种操作系统进程识别跟踪及信息获取的方法和装置有效
申请号: | 201310062081.3 | 申请日: | 2013-02-27 |
公开(公告)号: | CN104007956B | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 熊海泉;唐志敏;张志敏;范东睿 | 申请(专利权)人: | 华为技术有限公司;中国科学院计算技术研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 操作系统 进程 识别 跟踪 信息 获取 方法 装置 | ||
技术领域
本发明涉及软件技术领域,尤其涉及一种操作系统进程识别跟踪及信息获取的方法和装置。
背景技术
现今,基于虚拟化技术实现的多个高效虚拟机计算环境技术特征,使其在服务器资源整合、系统软件开发与调试、系统容错、系统安全、绿色计算、负载均衡等众多领域得到了广泛的应用。为了能使其可以应用的更加广泛,还需要解决虚拟化技术中的许多问题。而语义鸿沟就是其中最重要的问题之一,所谓语义鸿沟是指当前主流虚拟化技术中VMM(Virtual Machine Monitor,虚拟机管理器)因缺乏关于Guest OS(客户操作系统)内部软件抽象知识信息而对底层虚拟机陷入等事件所隐含的语义无法有效解释的现象。这种现象造成了VMM可以观测到所有来自Guest OS的底层陷入交互事件,但是在缺少Guest OS内部语义信息知识的情况下无法获知这些事件所隐含的意义。对于Linux(一种操作系统)操作系统来说,在运行进程时,将进程的页表基地址信息加载到MMU(Memory Management Unit,内存管理单元)中,而CR3控制寄存器代表当前进程的页目录基地址。由于每一个进程只有一套页面信息,因此每当遇到不同的值写到CR3中时,就代表新的进程开始运行,因此,只需对CR3进行监控,当其发生改变时就意味着进程发生切换,识别到操作系统的当前进程,进而基于虚拟CPU(Central Processing Unit,中央处理器)现场信息并借助于Guest OS进程软件抽象知识,如进程控制块字段偏移,便可进一步获取进程的信息。
在实现上述进程信息获取过程中,发明人发现现有技术中至少存在如下问题:上述的第一种方法只适用于Linux自身,但不适用于虚拟机环境,第二种方法基于逆向工程获取的信息量非常有限,且由于内核版本的差异,每次获取相同信息都需要进行一次逆向工程,工作量大。
发明内容
本发明的实施例提供一种操作系统进程识别跟踪及信息获取的方法和装置,能够在虚拟环境下有效地获取客户操作系统当前进程信息。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种操作系统进程识别跟踪及信息获取的方法,包括:
识别客户操作系统当前进程,获取当前的寄存器现场信息;
生成客户操作系统当前进程控制块字段偏移知识信息;
通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址;
根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。
在第一种可能的实现方式中,根据第一方面,所述识别客户操作系统当前进程获取当前的寄存器现场信息,包括:
当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程;
定位存储有所述客户操作系统当前进程的特定系统寄存器的代码改写位置;
在所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码;
在所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。
在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述生成客户操作系统当前进程控制块字段偏移知识信息,包括:
选取至少一段所述客户操作系统当前进程的进程字段;
编写并计算所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中;
对所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识信息。
在第三种可能的实现方式中,根据第二种可能的实现方式所述通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址,包括:
在所述当前的寄存器现场信息中获取ESP栈指针寄存器的值;
采用所述ESP栈指针寄存器的值计算客户操作系统当前进程基地址;
根据所述客户操作系统当前进程基地址获取所述客户操作系统当前进程控制块基地址。
在第四种可能的实现方式中,根据第三种可能的实现方式,所述根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息,包括:
根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;中国科学院计算技术研究所,未经华为技术有限公司;中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310062081.3/2.html,转载请声明来源钻瓜专利网。