一种基于中断控制流图的中断验证系统技术方案

技术编号:18809815 阅读:17 留言:0更新日期:2018-09-01 09:22
一种基于中断控制流图的中断验证系统,包括:代码转换模块,用于根据中断驱动程序获取汇编代码;中断信息统计模块,根据所述汇编代码统计中断信息;控制流图生成模块,根据所述汇编代码生成控制流图;中断控制流图生成模块,根据所述控制流图与所述中断信息生成中断控制流图;处理模块,用于对所述中断控制流图切片处理;分析模块,根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。本发明专利技术提出了一个新的用以表示中断驱动程序控制流结构的模型—中断控制流图,并给出削减中断控制流图规模(切片)的方法,实现了在同一模型中验证中断驱动程序最常出现的两类问题,提高了中断驱动程序验证的可靠性与安全性。

Interrupt verification system based on interrupt control flow graph

An interrupt verification system based on interrupt control flow diagram includes: code conversion module for acquiring assembly code according to interrupt driver; interrupt information statistics module for statistical interrupt information according to assembly code; control flow diagram generation module for generating control flow diagram according to assembly code; interrupt control flow diagram The generation module generates an interrupt control flow diagram according to the control flow diagram and the interrupt information; the processing module is used for slicing the interrupt control flow diagram; and the analysis module verifies the time security and memory security of the interrupt driver according to the slicing of the interrupt control flow diagram. The invention proposes a new model for representing the structure of interrupt driver control flow, i.e. interrupt control flow graph, and provides a method for reducing the scale (slice) of interrupt control flow graph. The method realizes two kinds of problems which are most common in verifying interrupt driver in the same model, and improves the reliability and security of interrupt driver verification. Full nature.

【技术实现步骤摘要】
一种基于中断控制流图的中断验证系统
本专利技术涉及计算机代码静态分析领域,特别是涉及一种基于中断控制流图的中断验证系统,用于验证中断驱动程序的时间安全与内存安全。
技术介绍
当今,信息技术与移动互联网的发展日新月异,嵌入式实时系统的发展也取得了令人瞩目的进步,并且广泛应用于计算机相关产业,如:制造、医疗、交通以及通信等各个行业。除此之外,包括能源、航天、军事等关键领域都大量应用了嵌入式实时系统,因此一旦这些系统发生错误,将会造成不可估量的损失,那么实时系统工作的正确性与可靠性就显得尤为重要。实际上,实时系统工作的正确性与可靠性不仅取决于系统运行所产生的结果,同时也依赖于产生结果所需的时间,即本专利
中熟知的deadline(死亡时限)。然而在实践中,有关实时系统的正确性验证是非常困难的,特别时间性质是否满足要求的验证,因为通常系统的运行环境具有相对随机性和复杂性,这也就使得系统运行的相关命令的执行时间是不可预测的。因此,时间性质的正确验证至关重要。通过引入中断处理程序可以有效的解决上述问题,当一个暂停指令(由中断导致的)执行时,CPU会暂停当前正在执行的程序并转去执行中断处理ISR(InterruptServiceRoutine),当指令执行完毕后,CPU会继续执行之前被暂停的程序。但是,通常一个中断驱动程序中具有大量的并且不同的中断源(发出中断请求信号的来源),甚至大多数实时系统都支持中断处理程序中嵌套中断,通过一个中断可以被具有更高优先级的中断打断而实现,这些情况导致了中断处理程序同样具有随机性和复杂性。此外,由于中断机制的引入,使得中断驱动程序会产生另外一个可能影响安全的问题数据竞争——即两个线程同时访问同一个共享变量,且这两个访问中至少有一个访问是向变量中写值。因此在嵌入式领域中,仍然经常会发生由于中断引发的软件错误,然而目前有关中断数据竞争与时间性质的检测技术与方法还相对缺乏。
技术实现思路
针对上述问题,本专利技术通过公开了一种基于中断控制流图的中断验证系统,包括:代码转换模块,用于根据中断驱动程序获取汇编代码;中断信息统计模块,根据所述汇编代码统计中断信息;控制流图生成模块,根据所述汇编代码生成控制流图;中断控制流图生成模块,根据所述控制流图与所述中断信息生成中断控制流图。处理模块,用于对所述中断控制流图切片处理;分析模块,根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全;优选的,所述中断驱动程序包括:主控程序与中断处理程序。优选的,所述中断信息,包括:节点、所述节点中的中断处理程序、所述节点中的中断处理程序的优先级。更优选的,所述控制流图生成模块包括:主控控制流图生成单元,用于根据驱动程序中的主控程序生成主控控制流图;中断处理控制流图生成单元,用于根据驱动程序中的中断处理程序生成中断处理控制流图。更优选的,所述中断控制流图生成模块利用所述中断信息将所述主控控制流图与所述中断处理控制流图结合,从而获得中断控制力图。更优选的,所述中断控制流图生成模块、所述中断处理控制流图生成单元与所述主控控制流图生成单元中生成的对应控制流图,均以包括节点集合与有向边集合的数学模型进行保存。更优选的,所述有向边集合中的有向边由一对有向节点对表示,所述有向节点对中的节点包含于所述节点集合中。更优选的,所述分析模块根据所述中断控制流图切片验证所述中断驱动程序的时间安全,包括:(1)通过所述中断控制流图切片,将中断控制流图转换为整数线性规划;(2)通过对所述整数线性规划进行求解,获得所述目标代码的最坏执行路径;(3)通过计算所述最坏执行路径的长度,验证中断驱动程序的时间安全。更优选的,所述分析模块根据所述中断控制流图切片验证所述中断驱动程序的内存安全,包括:a)遍历节点,判断遍历节点是否为中断处理程序的入口,如果是,则将中断处理程序标记为真,并将上一节点的状态列表变量压入栈中;b)判断遍历节点是否为中断处理程序的返回节点:如果既是返回节点并且上一节点的状态列表变量为空,则将中断驱动程序标记设为假,并将上一节点的状态列表变量弹出栈;如果是返回节点但上一节点的状态列表变量不为空,则只进行将上一节点的状态列表变量弹出栈的操作;若不是中断处理程序的返回节点,则继续判断下一个节点;c)判断中断驱动程序标记是否为真,在标记为真的节点中找出存在数据竞争的节点,若在当前节点中存在有两个或两个以上的子程序同时访问当前节点中的同一个共享变量,并且访问的形式中最少有一个是写操作,则表示存在数据竞争,将当前节点加入到冲突节点集合中。本专利技术的优点是,与传统中断验证系统相比,针对中断驱动程序,扩展了传统的主控控制流图,提出了一个新的用以表示中断驱动程序控制流结构的模型—中断控制流图,并给出削减中断控制流图规模(切片)的方法,可有效减少15%~25%的中断控制流图的规模;根据中断控制流图切片,对中断驱动程序进行最坏执行路径分析用以验证时间安全;根据中断控制流图切片,对数据竞争进行检测用以验证内存安全,本专利技术实现了在同一模型中验证中断驱动程序最常出现的两类问题,提高了中断驱动程序验证的可靠性与安全性。附图说明通过阅读下文具体实施方式的详细描述,各种其他的优点和益处对于本领域主控技术人员将变得清楚明了。附图仅用于示出具体实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术的中断验证系统组成图。图2为本专利技术的中断验证系统流程图。图3为本专利技术的一个可选实施例的主控控制流图结构图。图4为本专利技术的一个可选实施的中断处理控制流图结构图。具体实施方式本专利技术公开了一种基于中断控制流图的中断验证系统,所述中断验证系统首先通过构建中断控制流图数学模型,利用中断控制流图数学模型来描述中断驱动程序的控制流信息;然后利用程序切片的技术思想,将中断控制流图进行切片;最后通过对中断控制流图切片的分析来验证中断驱动程序的时间安全与内存安全。其中所述中断驱动程序包括,主控程序与中断处理程序。下面将结合附图详细的介绍本专利技术的验证过程。如图1所示,为本专利技术基于中断控制流图的中断验证系统,包括:代码转换模块、中断信息统计模块、控制流图生成模块,根据所述汇编代码生成控制流图、中断控制流图生成模块、处理模块和分析模块,其中所述控制流图生成模块还包括,主控控制流图生成单元和中断处理控制流图生成单元。本专利技术利用上述模块,对中断驱动程序进行处理分析,从而验证中断驱动程序的时间安全和内存安全。具体的,汇编语言的优点是,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等且易于读写和调试,所以首先本专利技术利用所述代码转换模块将中断驱动程序进行反汇编,得到中断驱动程序的汇编代码。所述汇编代码包括主控程序汇编代码与中断处理程序汇编代码。传统的主控控制流图只对主控程序流进行了描述,不能对整个中断驱动程序进行描述,并且由于无法通过所述汇编代码直接得到中断控制流图,于是首先本专利技术通过利用控制流图生成模块中的主控控制流图生成单元生成主控控制流图,从而对主控程序流进行描述;通过利用控制流图生成模块中的中断处理控制流图生成单元生成中断处理控制流图,从而对中断处理程序流进行描述;然后通过本专利技术中的中断控制流图本文档来自技高网
...

【技术保护点】
1.一种基于中断控制流图的中断验证系统,其特征在于,包括:代码转换模块,用于根据中断驱动程序获取汇编代码;中断信息统计模块,根据所述汇编代码统计中断信息;控制流图生成模块,根据所述汇编代码生成控制流图;中断控制流图生成模块,根据所述控制流图与所述中断信息生成中断控制流图;处理模块,用于对所述中断控制流图切片处理;分析模块,根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。

【技术特征摘要】
1.一种基于中断控制流图的中断验证系统,其特征在于,包括:代码转换模块,用于根据中断驱动程序获取汇编代码;中断信息统计模块,根据所述汇编代码统计中断信息;控制流图生成模块,根据所述汇编代码生成控制流图;中断控制流图生成模块,根据所述控制流图与所述中断信息生成中断控制流图;处理模块,用于对所述中断控制流图切片处理;分析模块,根据所述中断控制流图切片,验证所述中断驱动程序的时间安全与内存安全。2.根据权利要求1所述的系统,其特征在于,所述中断驱动程序包括:主控程序与中断处理程序。3.根据权利要求1所述的系统,其特征在于,所述中断信息包括:节点、所述节点中的中断处理程序、所述节点中的中断处理程序的优先级。4.根据权利要求1或2所述的系统,其特征在于,所述控制流图生成模块包括:主控控制流图生成单元,用于根据驱动程序中的主控程序的汇编代码生成主控控制流图;中断处理控制流图生成单元,用于根据驱动程序中的中断处理程序的汇编代码生成中断处理控制流图。5.根据权利要求4所述的系统,其特征在于,所述中断控制流图生成模块利用所述中断信息将所述主控控制流图与所述中断处理控制流图结合,从而获得中断控制力图。6.根据权利要求5所述的系统,其特征在于,所述中断控制流图、所述中断处理控制流图和所述主控控制流图,均以包括:节点集合与有向边集合的数学模型进行保存。7.根据权利要求6所述的系统,其特征在于,...

【专利技术属性】
技术研发人员:史建琦佘庆黄滟鸿郭欣熊家文毛侠
申请(专利权)人:华东师范大学上海华元创信软件有限公司
类型:发明
国别省市:上海,31

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

1