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

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

【发明内容】

[0004]本发明的实施例提供一种操作系统进程识别跟踪及信息获取的方法和装置,能够在虚拟环境下有效地获取客户操作系统当前进程信息。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]第一方面,提供一种操作系统进程识别跟踪及信息获取的方法,包括:
[0007]识别客户操作系统当前进程,获取当前的寄存器现场信息;
[0008]生成客户操作系统当前进程控制块字段偏移知识信息;
[0009]通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址;
[0010]根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。
[0011]在第一种可能的实现方式中,根据第一方面,所述识别客户操作系统当前进程获取当前的寄存器现场信息,包括:[0012]当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程;
[0013]定位存储有所述客户操作系统当前进程的特定系统寄存器的代码改写位置;
[0014]在所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码;
[0015]在所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。
[0016]在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述生成客户操作系统当前进程控制块字段偏移知识信息,包括:
[0017]选取至少一段所述客户操作系统当前进程的进程字段;
[0018]编写并计算所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中;
[0019]对所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识息。
[0020]在第三种可能的实现方式中,根据第二种可能的实现方式所述通过所述当前的寄存器现场信息计算客户操作系统当前进程控制块基地址,包括:
[0021]在所述当前的寄存器现场信息中获取ESP栈指针寄存器的值;
[0022]采用所述ESP栈指针寄存器的值计算客户操作系统当前进程基地址;
[0023]根据所述客户操作系统当前进程基地址获取所述客户操作系统当前进程控制块基地址。
[0024]在第四种可能的实现方式中,根据第三种可能的实现方式,所述根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息,包括:
[0025]根据所述客户操作系统当前进程控制块基地址和所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址;
[0026]采用所述客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地址;
[0027]通过进程信息获取函数从所述客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。
[0028]第二方面,提供一种操作系统进程识别跟踪及信息获取装置,包括:
[0029]进程识别单元,用于识别客户操作系统当前进程,获取当前的寄存器现场信息;
[0030]信息生成单元,用于生成客户操作系统当前进程控制块字段偏移知识信息;
[0031]基地址计算单元,用于通过所述信息生成单元生成的所述当前的寄存器现场信息计算当前客户操作系统当前进程控制块基地址;
[0032]进程信息读取单元,用于根据所述基地址计算单元计算的所述客户操作系统当前进程控制块基地址和所述信息生成单元生成的所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息。
[0033]在第一种可能的实现方式中,根据第二方面,所述进程识别单元,包括:
[0034]进程识别模块,用于当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程;
[0035]位置定位模块,用于定位存储有所述进程识别模块识别的所述客户操作系统当前进程的特定系统寄存器的代码改写位置;
[0036]第一信息获取模块,用于在所述位置定位模块定位的所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码;
[0037]所述第一信息获取模块,还用于在所述第一信息获取模块获取的所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。
[0038]在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式,所述信息生成单元,包括:
[0039]进程字段选取模块,用于选取至少一段所述客户操作系统当前进程的进程字段;
[0040]信息处理模块,用于编写并计算所述进程字段选取模块选取的所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述进程字段选取模块选取的所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中;
[0041]偏移信息获取模块,用于对所述信息处理模块生成的所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识信息。
[0042]在第三种可能的实现方式中,根据第二种可能的实现方式,所述基地址计算单元,包括:
[0043]第二信息获取模块,用于在所述信息生成单元生成的所述当前的寄存器现场信息中获取ESP栈指针寄存器的值;
[0044]基地址获取模块,用于采用所述第二信息获取模块获取的所述ESP栈指针寄存器的值计算当前客户操作系统当前进程基地址;
[0045]所述基地址获取模块,还用于根据所述基地址获取模块获取的所述当前客户操作系统当前进程基地址获取所述当前客户操作系统当前进程控制块基地址。
[0046]在第四种可能的实现方式中,根据第三种可能的实现方式,所述进程信息读取单元,包括:
[0047]地址获取模块,用于根据所述基地址计算单元获取的所述客户操作系统当前进程控制块基地址和所述信息生成单元生成的所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址;
[0048]所述地址获取模块,还用于采用所述地址获取模块获取的所述客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地址;
[0049]进程信息读取模块,用于通过进程信息获取函数从所述地址获取模块获取的所述客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。
[0050]本发明的实施例提供一种操作系统进程识别跟踪及信息获取的方法和装置,通过识别客户操作系统当前进程,获取寄存器现场信息,并根据由寄存器现场信息计算出的客户操作系统当前进程控制块基地址和客户操作系统当前进程控制块字段偏移知识信息,再利用进程信息获取函数,能够在虚拟环境下有效地获取客户操作系统当前进程信息。
【专利附图】

【附图说明】[0051]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052]图1为本发明的实施例提供的一种操作系统进程识别跟踪及信息获取的方法的流程示意图;
[0053]图2为本发明的实施例提供的另一种操作系统进程识别跟踪及信息获取的方法的流程示意图;
[0054]图3为本发明的实施例提供的一种操作系统进程识别跟踪及信息获取装置的结构示意图;
[0055]图4为本发明的实施例提供的另一种操作系统进程识别跟踪及信息获取装置的结构示意图;
[0056]图5为本发明的另一实施例提供的一种操作系统进程识别跟踪及信息获取装置的结构示意图。
【具体实施方式】
[0057]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058]现今,虽然虚拟化技术得到了广泛的应用,但是虚拟化技术还是存在很多的问题,如虚拟化技术中的语义鸿沟的问题,该问题造成了 VMM (Virtual Machine Monitor虚拟机管理器)可以观测到所有来自Guest OS的底层陷入交互事件,但是在缺少Guest OS内部语义信息知识的情况下无法获知这些事件所隐含的意义,因此,本发明提供实施例提供的一种操作系统进程识别跟踪及信息获取的方法,可以使得VMM在虚拟环境下可以获取操作系统的进程信息,如图1所示,该方法包括如下步骤:
[0059]101、操作系统进程识别跟踪及信息获取装置识别客户操作系统当前进程,获取当前的寄存器现场信息。
[0060]其中,上述的客户操作系统是指在虚拟环境中应用的操作系统,该操作系统包括但不限定于:Linux操作系统(开源的)、Windows操作系统和Unix操作系统。
[0061]进一步可选的,如图2所示,步骤101具体包括如下步骤:
[0062]101a、当监测到客户操作系统发生进程切换敏感特权操作时,操作系统进程识别跟踪及信息获取装置识别客户操作系统当前进程。
[0063]具体的,每一个客户操作系统当前进程都有一个独立的虚拟地址空间,且每个客户操作系统当前进程都可以由对应的一个页目录基地址来确定。每当客户操作系统当前进程运行时,都需要将该客户操作系统当前进程加载到物理机器对应的特定系统寄存器当中(如X86(由Intel推出的一种复杂指令集,用于控制芯片的运行的程序)的CR3控制寄存器),而该操作过程在虚拟环境中为敏感特权操作,因此,当监测到客户操作系统当前进程发生进程切换敏感特权操作时,当前执行的客户操作系统当前进程会陷入到VMM中,从而使得VMM能够识别到操作系统当前的进程。
[0064]101b、操作系统进程识别跟踪及信息获取装置定位存储有所述客户操作系统当前进程的特定系统寄存器的代码改写位置。
[0065]101c、操作系统进程识别跟踪及信息获取装置在特定系统寄存器的代码改写位置上获取特定系统寄存器的改写代码。
[0066]101d、操作系统进程识别跟踪及信息获取装置在特定系统寄存器的改写代码中获取当前的寄存器现场信息。
[0067]102、操作系统进程识别跟踪及信息获取装置生成客户操作系统当前进程控制块字段偏移知识息。
[0068]其中,操作系统内核在不同配置编译下,其中的进程控制块字段结构是不同的,因此一些关键字段域在其中的偏移也会不同,为了给出准确的字段偏移,这里采用在操作系统内核中添加计算进程控制块字段偏移的方法来生成客户操作系统当前进程控制块字段偏移知识息。
[0069]进一步可选的,如图2所示,步骤102具体包括如下步骤:
[0070]102a、操作系统进程识别跟踪及信息获取装置选取至少一段客户操作系统当前进程的进程字段。
[0071]具体的,这里选取的至少一段当前进程的进程字段是根据实际需要所选取的,这里可以将上述的字段标记为sl,s2,.......[0072]102b、操作系统进程识别跟踪及信息获取装置编写并计算至少一段客户操作系统当前进程的进程字段的偏移信息宏,并将至少一段客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中。
[0073]其中,在计算至少一段当前进程的进程字段的偏移信息宏之前,首先根据实际系统找到对应的构架分支目录,其中典型目录格式为arch/X/kernel/asm-offsetsY.c,其中X代表CPU (Central Processing Unit,中央处理器)的结构类型,Y则代表同一架构下不同位宽,如32位或64位。其次,在其中定位到一个名称为void f00 (void)的函数,并在其末尾添加所需的进程字段的偏移信息宏,具体格式为:
[0074]......[0075]BLANK O
[0076]OFFSET(GPSI, task_struct, sl)
[0077]OFFSET(GPS2, task_struct, s2)
[0078]......[0079]102c、操作系统进程识别跟踪及信息获取装置对操作系统内核源代码文件进行编译,获取客户操作系统当前进程控制块字段偏移知识信息。
[0080]此外,由于客户操作系统当前进程控制块字段偏移知识信息只有应用在当前的寄存器现场信息中,才能够获取客户操作系统当前进程中所需要的信息,进而利用进程信息获取函数读取客户操作系统当前进程信息。
[0081]103、操作系统进程识别跟踪及信息获取装置通过当前的寄存器现场信息计算客户操作系统当前进程控制块基地址。
[0082]进一步可选的,如图2所示,步骤103具体包括如下步骤:[0083]103a、操作系统进程识别跟踪及信息获取装置在当前的寄存器现场信息中获取ESP栈指针寄存器的值。
[0084]103b、操作系统进程识别跟踪及信息获取装置采用ESP栈指针寄存器的值计算客户操作系统当前进程基地址。
[0085]103c、操作系统进程识别跟踪及信息获取装置根据客户操作系统当前进程基地址获取客户操作系统当前进程控制块基地址。
[0086]具体的,若这里以Linux操作系统为例,在Linux2.6以后的版本中,Linux进程内核堆栈、当前Linux进程的thread_info结构以及当前Linux进程控制块task_strcut有如下特点:
[0087]Linux进程内核堆栈与当前Linux进程的thread_info结构体共享一块存储区域,其中,thread_info结构体从共享存储区域块低位地址开始存放信息,而Linux进程内核堆栈则从共享块存储区域块高位地址开始存放信息。而当前Linux进程thread_info的第一个字段指向的是当前Linux进程控制块的指针。
[0088]根据上述特点,VMM中当前Linux进程控制块基地址计算方法步骤如下:
[0089]当Linux进程发生切换时,此刻Linux操作系统必然处于内核态,因此ESP (Extended stack pointer,栈指针寄存器)指向的地方一定位于Linux进程内核堆栈区域内,由此利用Linux进程内核堆栈与Linux进程thread_info结构体共享存储区域的特点,掩码屏蔽掉内核堆栈指针ESP栈指针寄存器低位部分获得当前进程的thread_info的基地址,具体如下公式所示,其中的Kernel Stack Size为Linux进程内核堆栈大小,典型的值有4KB和8KB两种。
[0090]thread_info_base = ESP&&(?(KernelStackSize-1))
[0091]在获得了 thread_info的基地址之后,利用task_struct始终位于其第一个字段的特点,可以知道它的地址实际上也就是当前进程控制块task_struct的地址,简单的进行一下指针类型转换,就可以获取Linux当前进程控制块的基地址,从而为获取进程各种信息打下基础。
[0092]104、操作系统进程识别跟踪及信息获取装置根据客户操作系统当前进程控制块基地址和客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。
[0093]进一步可选的,如图2所示,步骤104具体包括如下步骤:
[0094]104a、操作系统进程识别跟踪及信息获取装置根据客户操作系统当前进程控制块基地址和客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址。
[0095]104b、操作系统进程识别跟踪及信息获取装置采用客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地址。
[0096]104c、操作系统进程识别跟踪及信息获取装置通过进程信息获取函数从客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。
[0097]本发明的实施例提供一种操作系统进程识别跟踪及信息获取的方法,通过识别客户操作系统当前进程,获取寄存器现场信息,并根据由寄存器现场信息计算出的客户操作系统当前进程控制块基地址和客户操作系统当前进程控制块字段偏移知识信息,再利用进程信息获取函数,能够在虚拟环境下有效地获取客户操作系统当前进程信息。
[0098]具体的,这里以Linux客户操作系统为例,在基于KVM(Kernel_based VirtualMachine,开源虚拟机)的VMM中,获取基于Linux的Guest OS (—种客户操作系统)系统中进程的进程id和进程comm两个基本信息来说明此方法,具体的实施步骤如下:
[0099](I) Linux进程识别跟踪装置识别当前Linux进程,获取当前的寄存器现场信息。
[0100]al、基于VMM对特权敏感指令会产生陷入的特点,据此在KVM中定位到CR3控制寄存器改写代码地方。
[0101]a2、从上一步找到了 CR3控制寄存器改写的代码位于vmx.c的handle_cr,定位到CR3控制寄存器相关的部分,此时可以获得Linux当前的寄存器现场信息。
[0102](2)生成Linux进程控制块字段偏移知识信息 [0103]al、在 Linux 内核源代码文件(arch/x86/kernel/asm_offsets_32.c)中加入进程字段的偏移信息宏。
[0104]其中,本进程只关注进程id和进程名两个字段的字段信息,而这两个字段信息具体的获取过程如下:首先定位到函数void foo(void)的末尾处,此位置用于添加计算系统进程控制块字段偏移知识信息,并在该位置加入需要的进程字段偏移信息来计算进程字段的偏移信息宏,其中GPPID,GPCOMM代表的是进程id和进程名字段的进程字段的偏移信息宏(用这两个宏名字作为传递给VMM的字段偏移知识信息),task_struct代表Linux进程控制块数据结构名,而pid, comm则代表Linux进程控制块结构体中进程id和进程名字段,
具体的实现代码如下:
[0105]
【权利要求】
1.一种操作系统进程识别跟踪及信息获取的方法,其特征在于,包括: 识别客户操作系统当前进程,获取当前的寄存器现场信息; 生成客户操作系统当前进程控制块字段偏移知识信息; 通过所述当前的寄存器现场信息计算客户操作系统当前进程控制炔基地址; 根据所述客户操作系统当前进程控制炔基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。
2.根据权利要求1所述的方法,其特征在于,所述识别客户操作系统当前进程获取当前的寄存器现场信息,包括: 当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程; 定位存储有所述客户操作系统当前进程的特定系统寄存器的代码改写位置; 在所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码; 在所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。
3.根据权利要求1或2所述的方法,其特征在于,所述生成客户操作系统当前进程控制块字段偏移知识息,包括: 选取至少一段所述客户操作系统当前进程的进程字段; 编写并计算所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中; 对所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识息。
4.根据权利要求3所述的方法,其特征在于,所述通过所述当前的寄存器现场信息计算客户操作系统当前进程控制炔基地址,包括: 在所述当前的寄存器现场信息中获取ESP栈指针寄存器的值; 采用所述ESP栈指针寄存器的值计算客户操作系统当前进程基地址: 根据所述客户操作系统当前进程基地址获取所述客户操作系统当前进程控制炔基地址。
5.根据权利要求4所述的方法,其特征在于,所述根据所述客户操作系统当前进程控制炔基地址和所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取当前客户操作系统当前进程信息,包括: 根据所述客户操作系统当前进程控制炔基地址和所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址; 采用所述客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地 址; 通过进程信息获取函数从所述客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。
6.一种操作系统进程识别跟踪及信息获取装置,其特征在于,包括: 进程识别单元,用于识别客户操作系统当前进程,获取当前的寄存器现场信息; 信息生成单元,用于生成客户操作系统当前进程控制块字段偏移知识信息;基地址计算单元,用于通过所述信息生成单元生成的所述当前的寄存器现场信息计算当前客户操作系统当前进程控制炔基地址; 进程信息读取单元,用于根据所述基地址计算单元计算的所述客户操作系统当前进程控制炔基地址和所述信息生成单元生成的所述客户操作系统当前进程控制块字段偏移知识信息,利用进程信息获取函数读取客户操作系统当前进程信息。
7.根据权利要求6所述的装置,其特征在于,所述进程识别单元,包括: 进程识别模块,用于当监测到客户操作系统发生进程切换敏感特权操作时,识别所述客户操作系统当前进程; 位置定位模块,用于定位存储有所述进程识别模块识别的所述客户操作系统当前进程的特定系统寄存器的代码改写位置; 第一信息获取模块,用于在所述位置定位模块定位的所述特定系统寄存器的代码改写位置上获取所述特定系统寄存器的改写代码; 所述第一信息获取模块,还用于在所述第一信息获取模块获取的所述特定系统寄存器的改写代码中获取所述当前的寄存器现场信息。
8.根据权利要求6或7所述的装置,其特征在于,所述信息生成单元,包括: 进程字段选取模块,用于选取至少一段所述客户操作系统当前进程的进程字段; 信息处理模块,用于编写并计算所述进程字段选取模块选取的所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏,并将所述进程字段选取模块选取的所述至少一段所述客户操作系统当前进程的进程字段的偏移信息宏添加到操作系统内核源代码文件中; 偏移信息获取模块,用于对所述信息处理模块生成的所述操作系统内核源代码文件进行编译,获取所述客户操作系统当前进程控制块字段偏移知识信息。
9.根据权利要求8所述的装置,其特征在于,所述基地址计算单元,包括: 第二信息获取模块,用于在所述信息生成单元生成的所述当前的寄存器现场信息中获取ESP栈指针寄存器的值; 基地址获取模块,用于采用所述第二信息获取模块获取的所述ESP栈指针寄存器的值计算当前客户操作系统当前进程基地址; 所述基地址获取模块,还用于根据所述基地址获取模块获取的所述客户操作系统当前进程基地址获取所述客户操作系统当前进程控制炔基地址。
10.根据权利要求9所述的装置,其特征在于,所述进程信息读取单元,包括: 地址获取模块,用于根据所述基地址计算单元获取的所述客户操作系统当前进程控制炔基地址和所述信息生成单元生成的所述客户操作系统当前进程控制块字段偏移知识信息,生成客户操作系统当前进程虚拟地址; 所述地址获取模块,还用于采用所述地址获取模块获取的所述客户操作系统当前进程虚拟地址计算客户操作系统当前进程逻辑物理地址; 进程信息读取模块,用于 通过进程信息获取函数从所述地址获取模块获取的所述客户操作系统当前进程逻辑物理地址中读取客户操作系统当前进程信息。
【文档编号】G06F9/44GK104007956SQ201310062081
【公开日】2014年8月27日 申请日期:2013年2月27日 优先权日:2013年2月27日
【发明者】熊海泉, 唐志敏, 张志敏, 范东睿 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1