一种操作系统进程识别跟踪及信息获取的方法和装置制造方法及图纸

技术编号:10353883 阅读:139 留言:0更新日期:2014-08-27 10:21
本发明专利技术的实施例提供了一种操作系统进程识别跟踪及信息获取的方法和装置,涉及软件技术领域,能够在虚拟环境下有效地获取客户操作系统当前进程信息。该方法包括:识别客户操作系统当前进程,获取当前的寄存器现场信息;生成客户操作系统当前进程控制块字段偏移知识信息;通过当前的寄存器现场信息计算客户操作系统当前进程控制块基地址;根据客户操作系统当前进程控制块基地址和客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。本发明专利技术应用于虚拟化环境下客户操作系统当前进程信息的获取。

【技术实现步骤摘要】
一种操作系统进程识别跟踪及信息获取的方法和装置
本专利技术涉及软件
,尤其涉及一种操作系统进程识别跟踪及信息获取的方法和装置。
技术介绍
现今,基于虚拟化技术实现的多个高效虚拟机计算环境技术特征,使其在服务器资源整合、系统软件开发与调试、系统容错、系统安全、绿色计算、负载均衡等众多领域得到了广泛的应用。为了能使其可以应用的更加广泛,还需要解决虚拟化技术中的许多问题。而语义鸿沟就是其中最重要的问题之一,所谓语义鸿沟是指当前主流虚拟化技术中VMM (Virtual Machine Monitor,虚拟机管理器)因缺乏关于Guest OS (客户操作系统)内部软件抽象知识信息而对底层虚拟机陷入等事件所隐含的语义无法有效解释的现象。这种现象造成了 VMM可以观测到所有来自Guest OS的底层陷入交互事件,但是在缺少Guest OS内部语义信息知识的情况下无法获知这些事件所隐含的意义。对于Linux ( 一种操作系统)操作系统来说,在运行进程时,将进程的页表基地址信息加载到MMU(Memory ManagementUnit,内存管理单元)中,而CR3控制寄存器代表当前进程的页目录基地址。由于每一个进程只有一套页面信息,因此每当遇到不同的值写到CR3中时,就代表新的进程开始运行,因此,只需对CR3进行监控,当其发生改变时就意味着进程发生切换,识别到操作系统的当前进程,进而基于虚拟CPU (Central Processing Unit,中央处理器)现场信息并借助于GuestOS进程软件抽象知识,如进程控制块字段偏移,便可进一步获取进程的信息。在实现上述进程信息获取过程中,专利技术人发现现有技术中至少存在如下问题:上述的第一种方法只适用于Linux自身,但不适用于虚拟机环境,第二种方法基于逆向工程获取的信息量非常有限,且由于内核版本的差异,每次获取相同信息都需要进行一次逆向工程,工作量大。
技术实现思路
本专利技术的实施例提供一种操作系统进程识别跟踪及信息获取的方法和装置,能够在虚拟环境下有效地获取客户操作系统当前进程信息。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供一种操作系统进程识别跟踪及信息获取的方法,包括:识别客户操作系统当前进程,获取当前的寄存器现场信息;生成客户操作系统当前进程控制块字段偏移知识信息;通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址;根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。在第一种可能的实现方式中,根据第一方面,所述识别客户操作系统当前进程获取当前的寄存器现场信息,包括:当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程;定位存储有所述客户操作系统当前进程的特定系统寄存器的代码改写位置;在所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码;在所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述生成客户操作系统当前进程控制块字段偏移知识信息,包括:选取至少一段所述客户操作系统当前进程的进程字段;编写并计算所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中;对所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识息。在第三种可能的实现方式中,根据第二种可能的实现方式所述通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址,包括:在所述当前的寄存器现场信息中获取ESP栈指针寄存器的值;采用所述ESP栈指针寄存器的值计算客户操作系统当前进程基地址;根据所述客户操作系统当前进程基地址获取所述客户操作系统当前进程控制块基地址。在第四种可能的实现方式中,根据第三种可能的实现方式,所述根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息,包括:根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址;采用所述客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地址;通过进程信息获取函数从所述客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。第二方面,提供一种操作系统进程识别跟踪及信息获取装置,包括:进程识别单元,用于识别客户操作系统当前进程,获取当前的寄存器现场信息;信息生成单元,用于生成客户操作系统当前进程控制块字段偏移知识信息;基地址计算单元,用于通过所述信息生成单元生成的所述当前的寄存器现场信息计算当前客户操作系统当前进程控制块基地址;进程信息读取单元,用于根据所述基地址计算单元计算的所述客户操作系统当前进程控制块基地址和所述信息生成单元生成的所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息。在第一种可能的实现方式中,根据第二方面,所述进程识别单元,包括:进程识别模块,用于当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程;位置定位模块,用于定位存储有所述进程识别模块识别的所述客户操作系统当前进程的特定系统寄存器的代码改写位置;第一信息获取模块,用于在所述位置定位模块定位的所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码;所述第一信息获取模块,还用于在所述第一信息获取模块获取的所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式,所述信息生成单元,包括:进程字段选取模块,用于选取至少一段所述客户操作系统当前进程的进程字段;信息处理模块,用于编写并计算所述进程字段选取模块选取的所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述进程字段选取模块选取的所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中;偏移信息获取模块,用于对所述信息处理模块生成的所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识信息。在第三种可能的实现方式中,根据第二种可能的实现方式,所述基地址计算单元,包括:第二信息获取模块,用于在所述信息生成单元生成的所述当前的寄存器现场信息中获取ESP栈指针寄存器的值;基地址获取模块,用于采用所述第二信息获取模块获取的所述ESP栈指针寄存器的值计算当前客户操作系统当前进程基地址;所述基地址获取模块,还用于根据所述基地址获取模块获取的所述当前客户操作系统当前进程基地址获取所述当前客户操作系统当前进程控制块基地址。在第四种可能的实现方式中,根据第三种可能的实现方式,所述进程信息读取单元,包括:地址获取模块,用于根据所述基地址计算单元获取的所述客户操作系统当前进程控制块基地址和所述信息生成单元生成的所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟本文档来自技高网
...
一种操作系统进程识别跟踪及信息获取的方法和装置

【技术保护点】
一种操作系统进程识别跟踪及信息获取的方法,其特征在于,包括:识别客户操作系统当前进程,获取当前的寄存器现场信息;生成客户操作系统当前进程控制块字段偏移知识信息;通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址;根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。

【技术特征摘要】
1.一种操作系统进程识别跟踪及信息获取的方法,其特征在于,包括: 识别客户操作系统当前进程,获取当前的寄存器现场信息; 生成客户操作系统当前进程控制块字段偏移知识信息; 通过所述当前的寄存器现场信息计算客户操作系统当前进程控制炔基地址; 根据所述客户操作系统当前进程控制炔基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。2.根据权利要求1所述的方法,其特征在于,所述识别客户操作系统当前进程获取当前的寄存器现场信息,包括: 当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程; 定位存储有所述客户操作系统当前进程的特定系统寄存器的代码改写位置; 在所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码; 在所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。3.根据权利要求1或2所述的方法,其特征在于,所述生成客户操作系统当前进程控制块字段偏移知识息,包括: 选取至少一段所述客户操作系统当前进程的进程字段; 编写并计算所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中; 对所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识息。4.根据权利要求3所述的方法,其特征在于,所述通过所述当前的寄存器现场信息计算客户操作系统当前进程控制炔基地址,包括: 在所述当前的寄存器现场信息中获取ESP栈指针寄存器的值; 采用所述ESP栈指针寄存器的值计算客户操作系统当前进程基地址: 根据所述客户操作系统当前进程基地址获取所述客户操作系统当前进程控制炔基地址。5.根据权利要求4所述的方法,其特征在于,所述根据所述客户操作系统当前进程控制炔基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息,包括: 根据所述客户操作系统当前进程控制炔基地址和所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址; 采用所述客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地 址; 通过进程信息获取函数从所述客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。6.一种操作系统进程识别跟踪及信息获取装置,其特征在于,包括: 进程识别单元,用于识别客户操作系统当前进程,获取当前的寄存器现场信息; 信息生成单元,用于生成客户操作系统当前进程控制块字段偏移知识信息;基地址计算单元,用于通过所述信息生成单元生...

【专利技术属性】
技术研发人员:熊海泉唐志敏张志敏范东睿
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1