System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机技术,尤其涉及一种操作系统的内核处理方法、装置及设备。
技术介绍
1、目前,随着计算机技术的发展,操作系统已经应用到了社会生产生活的各个方面,随之而来的是人们对操作系统安全提出了越来越高的要求,一旦操作系统内核出现了漏洞,整个操作系统的安全性都将得不到保证。因此,提前发现操作系统安全漏洞,并即时进行修复,对当今社会有非常重要的意义。
2、现有技术中,通常选择使用暴力重复运行系统调用序列的方法,这种方法一般会使用一个无尽的循环,不停地创建新进程来运行触发崩溃的系统调用,以期望内核在某个时刻碰巧形成了能够触发崩溃的状态。
3、然而现有技术中,由于需要不停地创建新进程来运行触发崩溃的系统调用,以期望内核在某个时刻碰巧形成了能够触发崩溃的状态,会导致效率较低且成功率无法得到保证。
技术实现思路
1、本申请提供一种操作系统的内核处理方法、装置及设备,用以解决操作系统的内核崩溃复现的难度较大的技术问题。
2、第一方面,本申请提供一种操作系统的内核处理方法,包括:
3、若操作系统在运行过程中出现崩溃事件,则获取所述崩溃事件相关的日志信息和内核源码,并对所述日志信息和所述内核源码进行静态分析,获取崩溃信息;其中,所述崩溃信息包括多个关键变量;
4、基于所述多个关键变量,在所述内核源码中运行崩溃前输入的多个系统调用序列,生成与每一系统调用序列对应的数据读写流图;
5、在生成的多个数据读写流图中,以至少两个数据读写
6、执行每一组对应的调度图,得到每一组对应的调度图的执行结果信息,所述执行结果信息表征所述操作系统是否发生崩溃。
7、进一步地,所述调度策略包括以下的任意一种或多种:
8、有向无环策略、三节点调度策略、三节点变异策略、高影响力优先策略、合并执行策略、去重策略。
9、进一步地,所述对所述日志信息和所述内核源码进行静态分析,获取崩溃信息,包括:
10、根据所述日志信息和所述内核源码,确定所述崩溃信息中的崩溃事件的类型;
11、在所述日志信息和所述内核源码中提取崩溃时的多个函数调用序列和造成所述崩溃事件的多个函数调用栈;
12、查找所述函数调用栈的函数所属的源代码位置和行号,分析并提取所述源代码位置的行号下的关键变量;
13、根据所述关键变量,生成所述崩溃信息中的数据流图,和/或,控制流图;
14、根据所述函数调用栈中的关键变量在所述源代码位置的行号,确定所述崩溃信息中的关键变量的影响力值。
15、进一步地,所述对所述日志信息和内核源码进行静态分析,获取崩溃信息,包括:
16、根据所述日志信息,确定所述崩溃信息中的崩溃事件的类型;
17、在所述日志信息中提取崩溃时的多个函数调用序列和造成所述崩溃事件的多个函数调用栈;
18、查找所述函数调用栈的函数所属的源代码位置和行号,分析并提取所述源代码位置的行号下的关键变量。
19、根据所述关键变量,生成所述崩溃信息中的数据流图,和/或,控制流图;
20、根据所述函数调用栈中的关键变量在所述源代码位置的行号,确定所述崩溃信息中的关键变量的影响力值。
21、进一步地,所述根据所述关键变量,生成所述崩溃信息中的数据流图,和/或,控制流图,包括:
22、针对每一关键变量,自后向前追踪所述关键变量的数据传递,确定发起所述关键变量的值的前向指令;并确定所述前向指令的类型;
23、若所述前向指令是数据结构相关指令,则转入预设的数据结构识别模块进行记录,或者,若所述前向指令是对共享内存的读写或是声明指令,则转入预设的控制流图构建模块;并根据转入的路径生成数据流图;
24、在预设的数据结构识别模块中,记录所述关键变量所属的数据结构以及所述关键变量位于该结构的字段位置;
25、在所述控制流图构建模块中,从所述前向指令的当前位置开始,向上回溯查找可以运行到所述当前位置的前向代码块,提取所述前向代码块的转跳条件变量;并针对所述转跳条件变量,重复执行自后向前追踪所述关键变量的数据传递,确定发起所述关键变量的值的前向指令的步骤;
26、若当前未出现与所述转跳条件变量相关的前向指令,则从所述函数调用栈选择下一层的函数,继续针对每一关键变量,执行自后向前追踪所述关键变量的数据传递,确定执行发起所述关键变量的值的前向指令的步骤,直至追踪到最后一个函数调用栈中的最后一层函数,生成控制流图。
27、进一步地,对所述内核源码进行编译,并在编译过程中,对所述内核源码中的每一关键变量进行插桩,得到所述每一关键变量的插桩信息;其中,所述插桩信息包括在所述关键变量的前端和后端分别插入的不同的函数调用;
28、所述对所述日志信息和所述内核源码进行静态分析,获取崩溃信息,包括:
29、对所述日志信息和所述编译后的内核源码进行静态分析,获取崩溃信息。
30、进一步地,所述基于所述多个关键变量,在所述内核源码中运行崩溃前输入的多个系统调用序列,生成与每一系统调用序列对应的数据读写流图,包括:
31、在所述编译后的内核源码中运行崩溃前输入的多个系统调用序列,并在运行结束后,根据运行过程中调用过的关键变量的插桩信息,获取每一系统调用序列的插桩结果;其中,所述插桩结果为执行的代码位置、读写的内存地址和读写的值;
32、根据每一系统调用序列的插桩数据,生成每一系统调用序列的数据读写流图。
33、进一步地,所述执行每一组对应的调度图,得到每一组对应的调度图的执行结果信息,包括:
34、执行每一组对应的调度图;
35、针对每一组对应的调度图,若根据当前的调度图中涉及的关键变量的插桩信息,确定所述当前的调度图已执行完成,则生成所述当前的调度图的执行结果信息。
36、第二方面,本申请提供一种操作系统的内核处理装置,包括:
37、获取模块,用于若操作系统在运行过程中出现崩溃事件,则获取所述崩溃事件相关的日志信息和内核源码;
38、分析模块,用于对所述日志信息和所述内核源码进行静态分析,获取崩溃信息;其中,所述崩溃信息包括多个关键变量;
39、第一生成模块,用于基于所述多个关键变量,在所述内核源码中运行崩溃前输入的多个系统调用序列,生成与每一系统调用序列对应的数据读写流图;
40、第二生成模块,用于在生成的多个数据读写流图中,以至少两个数据读写流图为一组,根据预设的调度策略,生成每一组对应的调度图;
41、执行模块,用于执行每一组对应的调度图,得到每一组对应的调度图的执行结果信息,所述执行结果信息表征所述操作系统是否发生崩溃。
42、进一步地,所述调度策略包括以下的任意一种或多种本文档来自技高网...
【技术保护点】
1.一种操作系统的内核处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述调度策略包括以下的任意一种或多种:
3.根据权利要求1所述的方法,其特征在于,所述对所述日志信息和所述内核源码进行静态分析,获取崩溃信息,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述关键变量,生成所述崩溃信息中的数据流图,和/或,控制流图,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述基于所述多个关键变量,在所述内核源码中运行崩溃前输入的多个系统调用序列,生成与每一系统调用序列对应的数据读写流图,包括:
7.根据权利要求5所述的方法,其特征在于,所述执行每一组对应的调度图,得到每一组对应的调度图的执行结果信息,包括:
8.一种操作系统的内核处理装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7任一项所述的方法。
...【技术特征摘要】
1.一种操作系统的内核处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述调度策略包括以下的任意一种或多种:
3.根据权利要求1所述的方法,其特征在于,所述对所述日志信息和所述内核源码进行静态分析,获取崩溃信息,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述关键变量,生成所述崩溃信息中的数据流图,和/或,控制流图,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述基于所述多个关键变量,在所述内核源码中运行崩溃前输入的多个系统调用序列,生...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。