CN114327879B - 一种os内核数据对象的提取方法、装置及存储介质 - Google Patents
一种os内核数据对象的提取方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114327879B CN114327879B CN202111588924.4A CN202111588924A CN114327879B CN 114327879 B CN114327879 B CN 114327879B CN 202111588924 A CN202111588924 A CN 202111588924A CN 114327879 B CN114327879 B CN 114327879B
- Authority
- CN
- China
- Prior art keywords
- data object
- link
- data
- pointer array
- kernel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000012795 verification Methods 0.000 claims description 11
- 230000003068 static effect Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000004886 process control Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 125000005647 linker group Chemical group 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种OS内核数据对象的提取方法、装置及存储介质,包括设置一个数据对象指针数组;根据所述数据对象在运行过程中形成的链接关系,将所述数据对象分为多种链接组,以使得每个数据对象均处于链接组中;将每个所述链接组的首地址均存放于所述数据对象指针数组中;从所述数据对象指针数组提取多个所述首地址,并通过链接组内的链接关系实现对所有数据对象的提取。本发明在OS内核的系统中设置一个数据对象指针数组,能够指向各种数据对象首地址,而每个链接组内部能够从首地址链接到组内的所有数据对象,从而实现对OS内核系统中所有数据对象的提取,提取路径明确清晰,提取效率高。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种OS内核数据对象的提取方法、装置及存储介质。
背景技术
现有的操作系统中,一些与硬件紧密相关的模块(如中断处理程序等)、各种常用设备的驱动程序和运行频率较高的模块,包括始终管理、进程调度和许多模块公用的一些基本操作等,通常都被安排在紧靠硬件的软件层次中常驻内存,即通常称为的OS内核;而一个计算机系统需要定期或者不定期地检测自身OS内核的完整性,以保证自身运行的稳定性,也便于在出现交互需求时随时与外界进行交互;而在该计算机系统检测自身完整性的过程中,检测模块需要提取到OS内核中所存在的所有的数据对象,从而保证检测的可靠性。
但是,OS内核的系统中存在大量数据对象,而系统动态分配的数据对象的地址是动态变化的,在需要使用它们时很难被精确完整地提取到,即使是静态数据,由于有大量的数据对象的存在,如果将这些数据对象直接存入,会占用过多的内存资源,也会因为没有分类的大量的数据对象,导致提取工作量庞大且复杂,使得像“完整性检测”这样利用这些数据对象的算法变得复杂,甚至难以利用。
因此,需要一种OS内核数据对象的提取方法、装置及存储介质,能够快速提取OS内核系统的所有数据对象,也便于验证OS内核系统的完整性。
发明内容
针对上述现有技术中存在的问题,本发明提供了一种OS内核数据对象的提取方法、装置及存储介质,能够快速提取OS内核系统的所有数据对象,路径清晰,方便快捷,也便于验证OS内核系统的完整性。所述技术方案如下:
一方面,本发明提供了一种OS内核数据对象的提取方法,包括:
设置一个数据对象指针数组;
根据所述数据对象在运行过程中形成的链接关系,将所述数据对象进行分组,得到多种链接组,以使得每个所述数据对象均处于所述链接组中;
将每个所述链接组对应的首地址均存放于所述数据对象指针数组中;其中,所述首地址能够链接到对应的所述链接组中所有的所述数据对象;
从所述数据对象指针数组提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取。
进一步地,所述数据对象为静态数据对象,包括链表数据对象、树型数据对象、独立数据对象和图型数据对象。
进一步地,所述将每个所述链接组对应的首地址均存放于所述数据对象指针数组中包括:
所述数据对象为链表数据对象,则将所述链表数据对象的头结点所对应的地址作为所述首地址,存放于所述数据对象指针数组中。
进一步地,所述将每个所述链接组对应的首地址均存放于所述数据对象指针数组中还包括:
所述数据对象为树型数据对象,则将所述树型数据对象的根节点所对应的地址作为所述首地址,存放于所述数据对象指针数组中。
进一步地,所述将每个所述链接组对应的首地址均存放于所述数据对象指针数组中还包括:
所述数据对象为无链接关系的独立数据对象,则将所述独立数据对象的地址作为所述首地址,直接存放于所述数据对象指针数组中。
进一步地,在所述将每一个所述链接组对应的首地址均存放于所述数据对象指针数组中之前,所述方法还包括:
所述数据对象为动态分配的数据对象,在创建后直接链接到一个所述链接组中。
进一步地,在所述数据对象为动态分配的数据对象,在创建后直接链接到一个所述链接组中之后,所述方法还包括:
判断所述动态分配的数据对象是否链接到所述链接组中;
若是,则不再将所述动态分配的数据对象重复存入所述数据对象指针数组;
若否,则将所述动态分配的数据对象存入所述数据对象指针数组。
进一步地,在所述从所述数据对象指针数组提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取之后,所述方法还包括:
将通过所述数据对象指针数组提取的所述数据对象输出到验证端,以使得所述验证端能够验证所述OS内核系统的完整性。
另一方面,本发明提供了一种OS内核数据对象的提取装置,至少包括:
数据对象指针数组插入模块,用于设置一个数据对象指针数组;
分组模块,用于根据所述数据对象在运行过程中形成的链接关系,将所述数据对象进行分组,得到多种链接组,以使得每个所述数据对象均处于所述链接组中;
存放模块,用于将每个所述链接组对应的首地址均存放于所述数据对象指针数组中;其中,所述首地址能够链接到对应的所述链接组中所有的所述数据对象;
提取模块,用于根据所述数据对象指针数组的指针,提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取。
另一方面,本发明提供了存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如以上所述的OS内核数据对象的提取方法。
实施本发明,具有如下有益效果:
本发明在OS内核的系统中设置一个数据对象指针数组,其中包括指向各种数据对象首地址的指针,而每个链接组内部能够从首地址链接到组内的所有数据对象,从而实现对OS内核系统中所有数据对象的提取;同时,从数据对象指针数组出发的提取路径明确,条理清晰,保证能够快速提取到所需的数据对象,提取效率高,提取完整性高,也有利于后续算法对大量数据对象的提取与理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1为本发明实施例提供的一种OS内核数据对象的提取方法的逻辑结构图;
图2为本发明实施例提供的一种可能的实施方式中静态数据对象的存放方法的逻辑结构图;
图3为本发明实施例提供的一种可能的实施方式中动态分配的数据对象的存放方法的逻辑结构图;
图4为本发明的一个可能的实施方式中OS内核数据对象的提取装置的示意图;
图5为本发明的一个可能的实施方式中Minix微内核操作系统中链接关系的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了下述图示或下述描述以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有技术中,OS内核各个子系统中所有数据对象庞大繁杂,很难将其完整地搜集起来,且即使搜集起来也很难自动地将这些数据对象之间的关键链接关系整理清楚;考虑到这一问题,本实施例提供一种OS内核数据对象的提取方法,该OS内核数据对象的提取方法可以应用于本发明实施例提供的OS内核数据对象的提取装置中,由OS内核中的控制单元进行控制,预先在OS内核中设置数据对象指针数组,或者现在OS内核中根据数据对象在OS内核系统运行过程中形成的多种链接关系将数据对象分为多个链接组,则每个链接组内部的数据对象之间都存在链接关系,之后将能够链接到组内所有数据对象的一个首地址存放到数据对象指针数组中;那么,当OS内核系统中出现对这些数据对象的提取需求时,控制单元即发出指令,先找到数据对象指针数组,从该数据对象指针数组中提取到首地址的信息,之后根据首地址提取到对应的链接组以及组内的所有数据对象,分类清晰,提取路径方便快捷,也能够保证提取的全面性,避免遗漏。
下面对本发明实施例的技术方案进行详细介绍,参考说明书附图1,该方法包括:
S101,设置一个数据对象指针数组。
该数据对象指针数组为额外增加的一个数组,在设置时对OS内核系统进行修改,将这一数据对象指针数组作为一种内存插入进去,其中能够用于存储部分数据对象,从而使得原本互不连通、类型不同的数据对象之间建立联系,起到类似于根目录的作用,以连接OS内核系统的所有数据对象。
S103,根据所述数据对象在运行过程中形成的链接关系,将所述数据对象进行分组,得到多种链接组,以使得每个所述数据对象均处于所述链接组中。
其中,根据实际构建的需求,S101步骤和S103步骤可以调换顺序,只要不影响OS内核整体稳定性即可。
而OS内核中各个子系统在运行过程中会产生多种多样的数据对象,有些数据对象之间存在共通点,彼此之间能够形成链接关系,如果通过一个数据对象能够找寻到另一个数据对象,则这两个数据对象之间具有链接关系,这种链接关系属于数据对象本身所携带的信息,那么在分组时,就能够将这些相互之间具有链接关系的数据对象分为一组,形成一个链接组;而有些数据对象为完全独立的数据对象,都是单一存在的,与其他任何数据对象之间都不存在链接关系,那么在分组时,就将每一个独立的数据对象分别单列成组,形成多个链接组,而每个链接组中仅包含一个独立的数据对象。
在本说明书的一个可能的实施方式中,这些数据对象可以为静态数据对象,这类静态数据对象是在OS内核系统运行过程中主要作为控制或者参考用的数据,并且在很长一段时间内不会变化,一般也不随运行而变化;而在本说明书的另一个可能的实施方式中,这些数据对象还可以为动态分配的数据对象,这些动态分配的数据对象在系统应用的运行过程中随时间而变化,例如线上库存数据、特定IP段或者相关设备数据的动态数据变化等,并且这些动态分配的数据不像数组等静态分配方法那样需要预先分配存储空间,而是系统根据程序的需要即时分配的,并且分配的内存大小就是程序要求的大小。此外,此处的链接组实际上是一个虚化的概念,并不是实际存在于OS内核系统中的,只是为了区分分组后的各组数据对象的分类状态;且此处的每个所述数据对象均处于所述链接组中指的是,在分组后得到的多种链接组中,任意一个数据对象都位于一个链接组(或者说一个分组)中,即每个链接组中可以包括多个数据对象,但从数据对象的角度出发,每一个数据对象均能够对应找到一个链接组;而不同的链接组之间不存在链接关系,以避免后续提取过程中造成系统紊乱。
S105,将每个所述链接组对应的首地址均存放于所述数据对象指针数组中;其中,所述首地址能够链接到对应的所述链接组中所有的所述数据对象。
如上所述,如果将所有这些数据对象都存放到数据对象指针数组中,这样不但无法准确指向数据对象导致搜集繁琐,设置数据对象指针数组也会毫无意义,还会导致数据对象指针数组占用大量额外的内存,造成大量内存不必要的浪费;基于此,选取链接组中的一个数据对象作为首位数据对象,这一首位数据对象与同一链接组内的其他所有数据对象之间都存在直接或者间接的链接关系,则只要将这一首位数据对象或者该首位数据对象所在的地址(即首地址)存入数据对象指针数组中即可,那么只要能够提取到首位数据对象,就能够根据链接组内部的链接关系得到同一链接组中的所有数据对象;以此类推,对于其他链接组,同样只需要将该链接组的首位数据对象或其首地址存入数据对象指针数组即可,即该数据对象指针数组形成了指向所有数据对象的指针,使得所有数据对象之间通过数据对象指针数组形成脉络清晰且便于梳理的链接关系,大大提升后续提取的便捷性,也便于后续提取到的数据对象在各种算法中的梳理和理解。
而需要说明的是,在该步骤中,链接组对应的首地址指的是链接组内首位数据对象的地址,根据链接组内部实际的链接关系,该首位数据对象可以选择为链接组中地址最小的数据对象,也可以选择其他的数据对象作为首位数据对象,本发明对此不做限定,只要是能够与该链接组中所有数据对象之间均存在链接关系的数据对象均可以作为首位数据对象,而该首位数据对象对应的地址均可以作为首地址。
S107,从所述数据对象指针数组提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取。
具体地,在本说明书的一个可能的实施方式中,静态数据对象包括链表数据对象、树型数据对象、独立数据对象和图型数据对象,则本发明的OS内核系统中的所有数据对象包括以上四种中的至少一种;其中,链表数据对象是由一个有顺序的单独数据对象的序列,并且序列中前一个数据对象中的一个指针子类型指向序列中后一个独立数据对象构成的;树型数据对象为从根节点数据对象开始,每个数据对象都包含指向根节点数据对象的子对象的指针类型的子类型;独立数据对象是由连续内存区域构成的数据对象,一般均独立存在,与其他数据对象之间不存在链接关系,包括基本数据类型(整数类型、浮点类型、字符类型、枚举类型等)、构造类型(数组类型、结构类型、联合类型等)、指针类型、Bool类型等;而图型数据对象为区别于以上三种数据对象的另一种数据对象,其中不同的模块可能链接到同一个数据对象,其序列中的各个数据对象之间形成一种图状的、不规则的网络结构,而不像链表数据对象和树型数据对象那样具有清晰简单的链接关系,使得链接关系更加复杂。具体地,对于这些静态数据对象的存放,如说明书附图2所示,S105步骤,即将每个所述链接组对应的首地址均存放于所述数据对象指针数组中包括:
S202,所述数据对象为链表数据对象,则将所述链表数据对象的头结点所对应的地址作为所述首地址,存放于所述数据对象指针数组中。
其中,链表数据对象在此处的头结点指的可以是序列中的第一个数据对象,则在存放时,既可以选择将该头结点直接存放于数据对象指针数组中,也可以将该头结点所处的地址作为首地址,将其地址存放与数据对象指针数组中,则在提取时,只要提取到该头节点的地址,即可获取到序列中的第一个数据对象,并按照链表序列,提取到完整的链表数据对象,快速便捷,精确性高,全面性好。
同样地,如说明书附图2所示,S105步骤还可以包括:
S204,所述数据对象为树型数据对象,则将所述树型数据对象的根节点所对应的地址作为所述首地址,存放于所述数据对象指针数组中。
其中,树型数据对象中首地址所对应的数据对象可以任意选择,只要这一数据对象与整个树型数据对象中的其他所有数据对象之间都存在链接关系即可;而树型数据对象中的数据对象一般都与根节点有关,即都与根节点存在链接关系,则也可以直接选择根节点所在的地址作为首地址,存放于数据对象指针数组中,链接关系的指向性更明确清晰,更便于提取完整的数据对象。
S206,所述数据对象为无链接关系的独立数据对象,则将所述独立数据对象的地址作为所述首地址,直接存放于所述数据对象指针数组中。
此时,因为独立数据对象只有一个,也就无所谓是不是首个数据对象或者首地址,可以直接将该独立数据对象存放入数据对象指针数组中;也可以将该独立数据对象的地址直接存入数据对象指针数组中,进一步节省数据对象指针数组的内存。
与上述S202-S206步骤类似地,对于图型数据对象的存放,其首地址所对应的首位数据对象并不一定是第一个数据对象或者是最后一个数据对象,而是需要选择为能够链接到图型数据对象中所有数据对象的一个数据对象或者一个节点;考虑到图型数据对象中链接关系的复杂性,在进行存放的过程中,可以增设选择模块,由人工输入来选择合适的数据对象或者节点的地址作为首地址加入到数据对象指针数组中,以保证该选择的数据对象或者节点具有链接到所有图型数据对象的链接关系,便于后续提取过程中,从数据对象指针数组指向该图型数据对象所在的链接组,避免提取时遗漏数据对象。
具体地,如以上所述,数据对象还可以是动态分配的数据对象,则如说明书附图3所示,在S105步骤之前,或者也可以为S105步骤之中的一个子步骤,所述方法还包括:
S301,所述数据对象为动态分配的数据对象,在创建后直接链接到一个所述链接组中。
S303,判断所述动态分配的数据对象是否链接到所述链接组中。
S305,若是,则不再将所述动态分配的数据对象重复存入所述数据对象指针数组。
S307,若否,则将所述动态分配的数据对象存入所述数据对象指针数组。
其中,动态分配的数据对象在创建完成后,由OS内核系统中的控制单元自动控制,默认直接链接到一个链接组中;而在本说明书的一个可能的实施方式中,控制单元监控这一链接动作或者监控该链接组与这一动态分配的数据对象的链接状态,同时在控制单元中对S301步骤中的整个链接过程进行逻辑判断,即S301步骤默认发出了执行链接动作的指令使其进行链接,而S303步骤对S301步骤中的链接动作进行判断,以获知链接状态,判断该链接动作是否确实执行或者该链接动作是否执行成功;如果判断结果为该动态分配的数据对象已经存在于一个链接组中,则不需要再次将该动态分配的数据对象的地址重复存放,只需要其链接组对应的首地址存放于数据对象指针数组即可;反之,若判断结果为该动态分配的数据对象分组失败,没有成功链接到链接组,甚至根本没有执行链接到链接组的动作,此时,可以将这一动态分配的数据对象单独存放入数据对象指针数组中。
具体地,以一个微内核操作系统Minix的消息子系统为例,如说明书附图5所示,图中数据对象指针数组的右侧第一列中四个进程控制模块相当于数据对象指针数组所指向的各个首地址或者首地址所对应的数据对象,之后的进程控制模块均可以看做是一个大的数据对象,则接受者与发送者均可以看做是进程控制模块的一个子模块,用于与其他模块链接交互;其中,第一列中的每个第一格均表示是接收者,且图中节点第一行带有灰度的也均表示接收者,所有的接收者均利用p_caller_q指向该接收者的发送队列,即被第一个发送者设置的队列,而发送者利用p_q_link指向同一个接收者的发送睡眠进程队列的下一个进程,而每一个进程都可以看做是一个数据对象,这一双向的指向关系可以看做是链接组内部的链接关系,从而将队列中的数据对象链接起来,那么在提取时,数据对象指针数组就能够通过接收者获取到该接收者所在队列的所有数据对象;另外,在OS内核的一个子系统中还会存在一些没有链接关系的独立数据对象,这些独立数据对象也需要链接到数据对象指针数组中,以保证整体数据对象的完整性。
具体地,本实施例还提供一种该OS内核数据对象的提取方法的应用场景,在S107步骤之后,即在所述从所述数据对象指针数组提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取之后,所述方法还包括:
将通过所述数据对象指针数组提取的所述数据对象输出到验证端,以使得所述验证端能够验证所述OS内核系统的完整性。
此时,OS内核系统作为示证端,出现对于其全部数据对象的提取需求,则OS内核系统找到数据对象指针数组,并依靠该数据对象指针数组中的指针搜集到各种链接组的首地址,进而根据首地址提取对应的链接组中具有链接关系的所有数据对象,则通过汇集所有链接组中的数据对象,能够保证提取到的数据对象的全面性和完整性,并将这些所有的数据对象输出,以提供给验证端(OS内核中的检测模块或者外界的交互对象等),便于验证端验证本OS内核系统的完整性和安全性等性能;此外,需要说明的是,验证端同样可以获取到OS内核系统中从数据对象指针数组到链接组首地址再到所有数据对象的这一搜集路径,便于验证端梳理和理解OS内核系统提供的数据对象,提升验证效率。
通过上述实施例可知,本发明实施例中的OS内核数据对象的提取方法具有以下有益效果:
本发明在OS内核系统中设置一个数据对象指针数组,其中包括指向各种数据对象首地址的指针,而每个链接组内部能够从首地址链接到组内的所有数据对象,从而实现对OS内核系统中所有数据对象的提取;同时,从数据对象指针数组出发的提取路径明确,条理清晰,保证能够快速提取到所需的数据对象,提取效率高,提取完整性高,也有利于后续算法对大量数据对象的提取与理解。
与上述本实施例提供的OS内核数据对象的提取方法相对应,本发明实施例还提供一种OS内核数据对象的提取装置,由于本发明实施例提供的OS内核数据对象的提取装置与上述几种实施方式提供的OS内核数据对象的提取方法相对应,因此前述OS内核数据对象的提取方法的实施方式也适用于本实施例提供的OS内核数据对象的提取装置,在本实施例中不再详细描述。
本发明实施例提供的数据对象的OS内核提取装置能够实现上述方法实施例中的OS内核数据对象的提取方法,如说明书附图4所示,该装置可以包括:
数据对象指针数组插入模块410,用于设置一个数据对象指针数组;
分组模块420,用于根据所述数据对象在运行过程中形成的链接关系,将所述数据对象进行分组,得到多种链接组,以使得每个所述数据对象均处于所述链接组中;
存放模块430,用于将每个所述链接组对应的首地址均存放于所述数据对象指针数组中;其中,所述首地址能够链接到对应的所述链接组中所有的所述数据对象;
提取模块440,用于根据所述数据对象指针数组的指针,提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的OS内核数据对象的提取装置能够通过在OS内核系统中引入一个具有指向作用的数据对象指针数组,并将大量数据对象根据链接关系分类,之后将分类后的链接组中的一个数据对象所在的地址作为首地址存入该数据对象指针数组中,实现由数据对象指针数组到多个链接组首地址,再到链接组内所有数据对象的提取路径,大大降低数据存储的复杂度,提升提取效率,同时这一提取路径能够有效避免遗漏,保证提取到的数据对象的完整性。
此外,该OS内核数据对象的提取装置由控制单元控制,集成于OS内核系统中,所述控制单元包括处理器和存储器,其中,处理器(或称CPU(Central Processing Unit,中央处理器))为基于OS内核数据对象的提取装置的核心部件,其功能主要是解释存储器指令以及处理各个模块所反馈的数据;处理器的结构大致分为运算逻辑部件与寄存器部件等,运算逻辑部件主要进行相关的逻辑计算(如移位操作、逻辑操作、定点或浮点算术运算操作与地址运算等),寄存器部件则用于暂存指令、数据与地址。
存储器为记忆设备,可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,可包括但不限于:Windows系统(一种操作系统),Linux(一种操作系统)等,本发明对此并不作限定;此外,也可存储功能所需的应用程序等,例如,在该存储器的存储空间中还存放了适于被处理器加载并执行的至少一条指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码);并且,存储数据区可存储根据所述装置的使用所创建的数据等;相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例还提供一种存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现以上所述的OS内核数据对象的提取方法;可选地,该存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器;此外,该存储介质可以包括但不限于随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、非易失存储器(NVM)、U盘、移动硬盘、磁盘存储器件、闪存器件、其他易失性固态存储器件等各种可以存储程序代码的存储介质。
需要说明的是,上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所描述的仅为本发明的一些实施例而已,并不用于限制本发明,本行业的技术人员应当了解,本发明还会有各种变化和改进,任何依照本发明所做的修改、等同替换和改进都落入本发明所要求的保护的范围内。
Claims (8)
1.一种OS内核数据对象的提取方法,其特征在于,包括:
设置一个数据对象指针数组;
根据所述数据对象在运行过程中形成的链接关系,将所述数据对象进行分组,得到多种链接组,以使得每个所述数据对象均处于所述链接组中;如果通过一个数据对象能够找寻到另一个数据对象,则两个数据对象之间具有链接关系,不同的链接组之间不存在链接关系;
将每个所述链接组对应的首地址均存放于所述数据对象指针数组中;其中,所述首地址能够链接到对应的所述链接组中所有的所述数据对象;当所述数据对象为无链接关系的独立数据对象,则将所述独立数据对象的地址作为所述首地址,直接存放于所述数据对象指针数组中;
从所述数据对象指针数组提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取;
将通过所述数据对象指针数组提取的所述数据对象输出到验证端,以使得所述验证端能够验证所述OS内核系统的完整性。
2.根据权利要求1所述的一种OS内核数据对象的提取方法,其特征在于,所述数据对象为静态数据对象,包括链表数据对象、树型数据对象、独立数据对象和图型数据对象。
3.根据权利要求2所述的一种OS内核数据对象的提取方法,其特征在于,所述将每个所述链接组对应的首地址均存放于所述数据对象指针数组中包括:
所述数据对象为链表数据对象,则将所述链表数据对象的头结点所对应的地址作为所述首地址,存放于所述数据对象指针数组中。
4.根据权利要求2所述的一种OS内核数据对象的提取方法,其特征在于,所述将每个所述链接组对应的首地址均存放于所述数据对象指针数组中还包括:
所述数据对象为树型数据对象,则将所述树型数据对象的根节点所对应的地址作为所述首地址,存放于所述数据对象指针数组中。
5.根据权利要求1所述的一种OS内核数据对象的提取方法,其特征在于,在所述将每一个所述链接组对应的首地址均存放于所述数据对象指针数组中之前,所述方法还包括:
所述数据对象为动态分配的数据对象,在创建后直接链接到一个所述链接组中。
6.根据权利要求5所述的一种OS内核数据对象的提取方法,其特征在于,在所述数据对象为动态分配的数据对象,在创建后直接链接到一个所述链接组中之后,所述方法还包括:
判断所述动态分配的数据对象是否链接到所述链接组中;
若是,则不再将所述动态分配的数据对象重复存入所述数据对象指针数组;
若否,则将所述动态分配的数据对象存入所述数据对象指针数组。
7.一种OS内核数据对象的提取装置,其特征在于,至少包括:
数据对象指针数组插入模块,用于设置一个数据对象指针数组;
分组模块,用于根据所述数据对象在运行过程中形成的链接关系,将所述数据对象进行分组,得到多种链接组,以使得每个所述数据对象均处于所述链接组中;如果通过一个数据对象能够找寻到另一个数据对象,则两个数据对象之间具有链接关系,不同的链接组之间不存在链接关系;
存放模块,用于将每个所述链接组对应的首地址均存放于所述数据对象指针数组中;其中,所述首地址能够链接到对应的所述链接组中所有的所述数据对象;当所述数据对象为无链接关系的独立数据对象,则将所述独立数据对象的地址作为所述首地址,直接存放于所述数据对象指针数组中;
提取模块,用于根据所述数据对象指针数组的指针,提取多个所述首地址,并通过对应的所述链接组内的链接关系实现对所述链接组中所有的所述数据对象的提取;将通过所述数据对象指针数组提取的所述数据对象输出到验证端,以使得所述验证端能够验证所述OS内核系统的完整性。
8.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-6任一项所述的OS内核数据对象的提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111588924.4A CN114327879B (zh) | 2021-12-23 | 2021-12-23 | 一种os内核数据对象的提取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111588924.4A CN114327879B (zh) | 2021-12-23 | 2021-12-23 | 一种os内核数据对象的提取方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327879A CN114327879A (zh) | 2022-04-12 |
CN114327879B true CN114327879B (zh) | 2023-10-27 |
Family
ID=81055127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111588924.4A Active CN114327879B (zh) | 2021-12-23 | 2021-12-23 | 一种os内核数据对象的提取方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327879B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317734A (zh) * | 2014-11-28 | 2015-01-28 | 迈普通信技术股份有限公司 | 一种适用于slab的内存分配方法及装置 |
CN105653906A (zh) * | 2015-12-28 | 2016-06-08 | 中国人民解放军信息工程大学 | 基于地址随机的反内核挂钩方法 |
CN107016283A (zh) * | 2017-02-15 | 2017-08-04 | 中国科学院信息工程研究所 | 基于完整性验证的Android权限提升攻击安全防御方法和装置 |
CN109740310A (zh) * | 2018-12-29 | 2019-05-10 | 北京嘉楠捷思信息技术有限公司 | 用于嵌入式操作系统的内核对象访问方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732824B2 (en) * | 2006-01-23 | 2014-05-20 | Microsoft Corporation | Method and system for monitoring integrity of running computer system |
US8566944B2 (en) * | 2010-04-27 | 2013-10-22 | Microsoft Corporation | Malware investigation by analyzing computer memory |
-
2021
- 2021-12-23 CN CN202111588924.4A patent/CN114327879B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317734A (zh) * | 2014-11-28 | 2015-01-28 | 迈普通信技术股份有限公司 | 一种适用于slab的内存分配方法及装置 |
CN105653906A (zh) * | 2015-12-28 | 2016-06-08 | 中国人民解放军信息工程大学 | 基于地址随机的反内核挂钩方法 |
CN107016283A (zh) * | 2017-02-15 | 2017-08-04 | 中国科学院信息工程研究所 | 基于完整性验证的Android权限提升攻击安全防御方法和装置 |
CN109740310A (zh) * | 2018-12-29 | 2019-05-10 | 北京嘉楠捷思信息技术有限公司 | 用于嵌入式操作系统的内核对象访问方法和装置 |
Non-Patent Citations (1)
Title |
---|
Linux内核文件间依赖关系分析工具的研究与实现;朱雪燕;《全国优秀硕士论文全文数据库 信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114327879A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6389451B1 (en) | Distributed digital rule processor for single system image on a clustered network and method | |
CN106383764A (zh) | 一种数据采集方法和设备 | |
CN106528065B (zh) | 一种线程获取方法及设备 | |
CN108170602B (zh) | 一种测试用例生成方法、装置、终端及计算机可读介质 | |
CN113434396A (zh) | 接口测试方法、装置、设备、存储介质及程序产品 | |
US10558391B2 (en) | Data processing system and data processing method | |
Alistarh et al. | How to allocate tasks asynchronously | |
CN104281636A (zh) | 海量报表数据并发分布式处理方法 | |
CN114327879B (zh) | 一种os内核数据对象的提取方法、装置及存储介质 | |
CN109165201B (zh) | 日志的归并方法及终端设备 | |
CN110580195A (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
CN110362577B (zh) | 一种数据插入方法、装置、设备和储存介质 | |
Nemati et al. | Host hypervisor trace mining for virtual machine workload characterization | |
CN112732556A (zh) | 分布式系统的自动化测试方法、装置、设备及存储介质 | |
CN111277626A (zh) | 服务器升级方法、装置、电子设备及介质 | |
CN110753090A (zh) | 服务器集群的任务执行方法、装置、计算机设备及存储介质 | |
US7673182B2 (en) | Method and apparatus for obtaining stack traceback data for multiple computing nodes of a massively parallel computer system | |
Benini et al. | Multi-stage Benders decomposition for optimizing multicore architectures | |
Yeh et al. | A circular pipeline processing based deterministic parallel test pattern generator | |
US20140351643A1 (en) | Smart terminal fuzzing apparatus and method using multi-node structure | |
Xie et al. | Modeling traffic of big data platform for large scale datacenter networks | |
CN113377719A (zh) | 一种系统异常关机时间获取方法及系统 | |
CN113626194A (zh) | 一种报表文件生成方法、装置、设备及可读存储介质 | |
Juhasz et al. | A PVM implementation of a portable parallel image processing library | |
CN111124890A (zh) | 一种分布式数据库性能测试方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |