CN109388573A - 一种无漏报的中断驱动型程序运行时错误检测方法和系统 - Google Patents

一种无漏报的中断驱动型程序运行时错误检测方法和系统 Download PDF

Info

Publication number
CN109388573A
CN109388573A CN201811232920.0A CN201811232920A CN109388573A CN 109388573 A CN109388573 A CN 109388573A CN 201811232920 A CN201811232920 A CN 201811232920A CN 109388573 A CN109388573 A CN 109388573A
Authority
CN
China
Prior art keywords
abstract
program
numerical value
interruption
result
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.)
Granted
Application number
CN201811232920.0A
Other languages
English (en)
Other versions
CN109388573B (zh
Inventor
陈睿
贾春鹏
余娜
高栋栋
高猛
杨帆
左万娟
郭华
郑小萌
孙民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd
Original Assignee
BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING SUNWISE INFORMATION TECHNOLOGY Co Ltd
Priority to CN201811232920.0A priority Critical patent/CN109388573B/zh
Publication of CN109388573A publication Critical patent/CN109388573A/zh
Application granted granted Critical
Publication of CN109388573B publication Critical patent/CN109388573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Abstract

本发明公开了一种无漏报的中断驱动型程序运行时错误检测方法和系统。该方法,包括:对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序;根据所述抽象程序,建立共享变量数值抽象集;对所述共享变量数值抽象集进行解析,得到中断间干扰集;根据所述中断间干扰集进行模块化分析,得到模块化分析结果;根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。本发明降低了运行时错误检测对测试人员经验和能力的依赖,提高了高安全要求软件开发和测试的效率,提升了软件的安全性。

Description

一种无漏报的中断驱动型程序运行时错误检测方法和系统
技术领域
本发明属于软件错误检测技术领域,尤其涉及一种无漏报的中断驱动型程序运行时错误检测方法和系统。
背景技术
运行时错误是指程序运行中发生的错误,往往与程序运行状态相关,只有在特定的执行条件下才会触发,传统动态测试方法很难覆盖所有程序执行路径,容易遗漏。软件一旦发生运行时错误会严重影响系统安全。
目前使用静态分析技术检测软件运行时错误正逐步应用于互联网行业,静态分析技术的好处是不需要真正执行即可分析程序可能存在的问题。互联网行业的程序往往代码量极大,对静态分析工具的效率要求高。同时由于安全级别较低,针对互联网行业的静态分析方法往往会以产生大量漏报为代价,以满足用于快速找到最危险的软件安全问题的需求。
然而,对于航天等对安全有很高要求的领域,由于对于软件问题的“零容忍”,针对互联网行业的软件静态分析方法并不适用。与此同时,与桌面程序的多线程模型不同,目前对于中断驱动模型的研究不多,尚没有能够应用于一线工作的成果,而这些领域几乎所有的软件均为中断驱动型软件。因此在这些领域,对于软件运行时错误的检测仍以人工为主,检测结果依赖于测试人员的经验和能力。
一些对于航天等对安全有很高要求的领域软件嵌入式软件运行时错误检测的研究尚处于不成熟阶段,方法存在一定局限,或只能处理特定的如数据访问冲突等某一类数值型运行时错误,适用范围较窄;或不具备不产生漏报的特点,不能满足这些软件的安全要求。
发明内容
本发明的技术解决问题:提供一种无漏报的中断驱动型程序运行时错误检测无漏报的中断驱动型程序运行时错误检测方法和系统,旨在解决目前没有高效的手段帮助开发和测试人员发现中断驱动型程序数值型运行时错误的问题,降低运行时错误检测对测试人员经验和能力的依赖,提高安全要求软件开发和测试效率,提升软件安全性。
为了解决上述技术问题,本发明公开了一种无漏报的中断驱动型程序运行时错误检测方法,包括:
对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序;
根据所述抽象程序,建立共享变量数值抽象集;
对所述共享变量数值抽象集进行解析,得到中断间干扰集;
根据所述中断间干扰集进行模块化分析,得到模块化分析结果;
根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。
优选的,所述对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序,包括:
对所述待处理程序进行变量提取,将提取得到的变量转化为满足设定条件的抽象域;根据所述抽象域确定用抽象数值表达的抽象程序。
优选的,所述抽象域满足如下设定条件:
可表示实数范围内的任意数值;
任意两个抽象数值的合并结果仍为抽象数值,且,所述任意两个抽象数值均小于或等于所述任意两个抽象数值的合并结果;
存在一个最小抽象数值,其中,任意抽象数值与最小抽象数值的合并结果均为所述任意抽象数值本身;
存在一个最大抽象数值,其中,任意抽象数值与最大抽象数值的合并结果均为所述最大抽象数值。
优选的,所述对待处理程序进行抽象处理,得到用数值表达的抽象程序,包括:
通过人工标注确定待处理程序的主函数、所有中断的入口、以及每个中断的中断优先级;
通过人工标注确定待处理程序的中中断使能寄存器对应的变量或地址;
将待处理程序的所有数值操作转为对抽象数值的操作,得到用数值表达的抽象程序。
优选的,所述根据所述抽象程序,建立共享变量数值抽象集,包括:
对抽象程序进行解析,得到抽象程序中的全部共享变量;
将全部共享变量对应的抽象数值作为一个集合,得到共享变量数值抽象集。
优选的,共享变量满足如下条件:
存在一个全局变量A,在至少两个中断或主函数对所述全局变量A进行读写操作,且读写操作存在域不同中断或主函数;
或,
存在一个内存A,在至少两个中断或主函数对所述内存A进行读写操作,且读写操作存在域不同中断或主函数。
优选的,所述对所述共享变量数值抽象集进行解析,得到中断间干扰集,包括:
对共享变量数值抽象集对应的全部共享变量进行解析,记录每个中断和主函数对共享变量的读写操作;
在一个中断或主函数对共享变量进行读写操作时,将中断或主函数与对应的共享变量组成的二元组作为一个干扰信息进行记录;
重复上述步骤,直至获得全部干扰信息,形成中断间干扰集。
优选的,所述根据所述中断间干扰集进行模块化分析,得到模块化分析结果,包括:
以每个中断或主函数作为一个模块,在中断间干扰集中查找所有模块对应的干扰;
从共享变量数值抽象集中提取出中断或主函数对应的共享变量对应的抽象数值,合并在中断或主函数的入口;
遍历程序,直至所有模块的出口的所有变量的抽象数值不再发生变化为止,得到模块化分析结果。
优选的,所述根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行错误,包括:
根据所述模块化分析结果,遍历抽象程序每一个语句以及语句涉及变量对应的抽象数值;
当抽象数值满足数值型运行时错误条件,确定语句在实际执行时发生运行时错误。
相应的,本发明还公开了一种无漏报的中断驱动型程序运行时错误检测系统,包括:
抽象处理模块,用于对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序;
集合建立模块,用于根据所述抽象程序,建立共享变量数值抽象集;
解析模块,用于对所述共享变量数值抽象集进行解析,得到中断间干扰集;
分析模块,用于根据所述中断间干扰集进行模块化分析,得到模块化分析结果;
判定模块,用于根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。
本发明具有以下优点:
(1)本发明采用了可靠的分析方法,确保分析结果没有漏报,对于航天等高安全等级的领域,尤为适用。在其他可靠的程序分析方法中,往往对分析内容做很多限制,只能分析如数据访问冲突等某一类数值型运行时错误,适用范围较窄,而本发明克服了这一技术问题,具有广泛的应用范围。
(2)本发明采用了完备格理论和抽象解释作为数学基础,解决了静态分析中路径爆炸的问题,大大提高了分析速度。同时对于中断进行了精确处理,相较于其他以此为数学基础的方法,分析精度得到了很大的提高,大大减少率误报,从而提升了方法的实用价值。
(3)本发明采用了模块化分析方法,适用于中断模型,对于中断驱动型程序精度更高,在航天等软件以中断驱动型程序为主的领域更为适用。
(4)本发明满足约束的数值抽象方法均可以适用,通过不同的数值抽象方法,可以适用不同场景不同特点的程序,大大提高了方法的普适性。
附图说明
图1是本发明实施例所述的一种无漏报的中断驱动型程序运行时错误检测方法的步骤流程图;
图2是本发明实施例所述的一种用于运行所述无漏报的中断驱动型程序运行时错误检测方法的系统的架构图;
图3是本发明实施例所述的一种无漏报的中断驱动型程序运行时错误检测系统的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公开的实施方式作进一步详细描述。
参照图1,示出了本发明实施例所述的一种无漏报的中断驱动型程序运行时错误检测方法的步骤流程图。如图1,该无漏报的中断驱动型程序运行时错误检测方法,包括:
步骤S101,对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序。
在本实施例中,可对所述待处理程序进行变量提取,将提取得到的变量转化为满足设定条件的抽象域;根据所述抽象域确定用抽象数值表达的抽象程序。其中,抽象域满足如下设定条件:(1)可表示实数范围内的任意数值;(2)任意两个抽象数值的合并结果仍为抽象数值,且,所述任意两个抽象数值均小于或等于所述任意两个抽象数值的合并结果;(3)存在一个最小抽象数值,其中,任意抽象数值与最小抽象数值的合并结果均为所述任意抽象数值本身;(4)存在一个最大抽象数值,其中,任意抽象数值与最大抽象数值的合并结果均为所述最大抽象数值。
一种可行的实现方式可以如下:
通过人工标注确定待处理程序的主函数、所有中断的入口、以及每个中断的中断优先级;通过人工标注确定待处理程序的中中断使能寄存器对应的变量或地址;将待处理程序的所有数值操作转为对抽象数值的操作,得到用数值表达的抽象程序。
步骤S102,根据所述抽象程序,建立共享变量数值抽象集。
在本实施例中,可对抽象程序进行解析,得到抽象程序中的全部共享变量;将全部共享变量对应的抽象数值作为一个集合,得到共享变量数值抽象集。其中,共享变量满足如下条件:存在一个全局变量A,在至少两个中断或主函数对所述全局变量A进行读写操作,且读写操作存在域不同中断或主函数;或,存在一个内存A,在至少两个中断或主函数对所述内存A进行读写操作,且读写操作存在域不同中断或主函数。
步骤S103,对所述共享变量数值抽象集进行解析,得到中断间干扰集。
在本实施例中,可对共享变量数值抽象集对应的全部共享变量进行解析,记录每个中断和主函数对共享变量的读写操作;在一个中断或主函数对共享变量进行读写操作时,将中断或主函数与对应的共享变量组成的二元组作为一个干扰信息进行记录;重复上述步骤,直至获得全部干扰信息,形成中断间干扰集。
例如,在中断间干扰集中查找所有模块f对应的干扰<f,v>,从共享变量数值抽象集V中取出v的抽象数值,合并在f的入口。遍历程序,当程序中存在对共享变量vw进行的写操作时,若中断使能,将写操作后的结果合并在V中对应的vw上,否则不进行特殊处理;当程序存在对共享vr存在读操作时,若中断使能,再次将入口合并的抽象数值合并在读操作的结果中,否则不进行特殊处理。反复迭代所有模块,直到所有模块的出口所有变量的抽象数值不在发生变化为止。
步骤S104,根据所述中断间干扰集进行模块化分析,得到模块化分析结果。
在本实施例中,可以以每个中断或主函数作为一个模块,在中断间干扰集中查找所有模块对应的干扰;从共享变量数值抽象集中提取出中断或主函数对应的共享变量对应的抽象数值,合并在中断或主函数的入口;遍历程序,直至所有模块的出口的所有变量的抽象数值不再发生变化为止,得到模块化分析结果。
步骤S105,根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。
在本实施例中,可以根据所述模块化分析结果,遍历抽象程序每一个语句以及语句涉及变量对应的抽象数值;当抽象数值满足数值型运行时错误条件(如,数组下标大于或等于数组元素个数,或数组下标小于0等),确定语句在实际执行时发生运行时错误。
在本发明的一优选实施例中,参照图2,示出了本发明实施例所述的一种用于运行所述无漏报的中断驱动型程序运行时错误检测方法的系统的架构图。该用于运行所述无漏报的中断驱动型程序运行时错误检测方法的系统可由前端分析器、抽象解释执行器和运行时错误分析器三部分组成。其中,前端分析器可以包括:指针分析器、中断入口提取器、控制流图构造器和共享变量分析器;抽象解释执行器可以包括:中断型程序迭代器和语句抽象迭代器;运行时错误分析器可以包括:不变式分析器和错误输出模块。具体的:
指针分析器,用于使用指针分析算法对程序进行指针分析,获得指针与变量和内存的关系;
中断入口提取器,用于分析程序的调用关系,其中函数指针使用指针分析器获得的结果进行分析,使用调用关系生成调用图,调用图的根节点即是函数入口,配合用户标注中断优先级,即可获得中断入口;
控制流图构造器,用于分析所有中断,并使用控制流图构造算法构造控制流图;
共享变量分析器,用于使用共享变量分析算法,结合中断入口信息和指针信息对中断间的共享变量进行分析;
中断型程序迭代器,用于使用可靠的中断驱动型程序不变式分析算法的中断进行分析,分析过程中使用了中断入口信息以及共享变量信息,同时使用语句抽象迭代器对语句进行分析;
语句抽象迭代器,用于使用抽象解释分析方法,对每条语句的不见时进行求解,求解结果用于抽象解释迭代器进行迭代分析;
不变式分析器,用于使用中断驱动型程序缺陷特征识别方法对中断型程序迭代器的到的结果进行分析;
错误输出模块,用于对不变式分析器的结果进行整理并将错误以自然语言输出。
针对可靠的中断驱动型程序数值型运行时错误分析算法的一种具体实现方式可以如下:(1)通过指针分析器分析得出的指针信息以及中断入口提取器提供的中断入口信息,获取中断驱动型程序的中断信息,通过人工标注确定中断优先级;(2)使用(1)获取的中断信息作为输入,使用控制流图构造算法对每个中断建立对应的控制流图,这里的控制流图需要包含程序的所有语句以及语句间的转移关系和建议条件,同时存储所有中断出口的不变式以及中断的控制流图,中断出口不变式初始值为空;(3)建立一个全局的中断工作列表用以存储迭代过程中需要继续处理的中断信息;(4)如果中断工作列表不为空,则取出一个中断对应的控制流图,如果中断工作列表为空则代表迭代算法已经可以终止;(5)从全局中断列表中所有小于等于自己优先级的中断出口不变式,将这些不变式进行合并,作为取出的中断的初始状态,合并到入口状态中,将入口节点加入结点工作列表;(6)如果结点工作列表不为空,则取出一个结点进行下一步的运算,如果结点工作列表为空则代表中断内迭代算法终止,跳转到(9)继续中断间的迭代;(7)使用语句抽象迭代器计算对应结点的不变式。如果结点是对共享变量的读操作,则结点不变式需要加入高优先级对共享变量进行写操作的中断出口的不变式,这些不变式可以从全局中断列表中获取,共享变量的信息可以从共享变量分析器中获取;(8)如果结点不变式没有变化说明结点不变式已经收敛无需继续计算后续结点,则跳转(6),如果结点有后继节点,将所有结点后继结点加入结点工作列表后跳转到(6);(9)如果中断出口不变式不发生变化,则说明中断的不变式已经收敛,无需继续计算,否则将中断加入中断工作列表。跳转(4)继续对未收敛的中断进行计算;
例如:如表1,若分析中采取了区间抽象域,则每条语句的不变式描述为操作的变量v∈[a,b],a和b分别为变量的上界和下界,对于除零错、数组上溢、数组下溢、未初始化前使用的具体检测方式如下,若使用其他抽象域,需要根据抽象域具体加入操作原理制定方案。
表1,错误类型示意表
综上所述,针对航天等对安全有很高要求、对软件问题“零容忍”的领域,本发明实施例提供一种无漏报的中断驱动型程序运行时错误检测方法。旨在解决目前没有高效的手段帮助开发和测试人员发现中断驱动型程序数值型运行时错误的问题,降低了运行时错误检测对测试人员经验和能力的依赖,提高高安全要求软件开发和测试效率,提升软件安全性。
其次,由于数值抽象方法满足完备格理论以及抽象解释的约束,模块化分析符合中断驱动程序中断处理规则,通过以上方法获得的数值型运行时错误检测结果为可靠的结果,可以确保不会产生漏报;同时由于模块化分析对于中断进行了精确处理,相比于其他方法,可以产生较少的误报。
在本发明的一优选实施例中,参照图3,示出了本发明实施例所述的一种无漏报的中断驱动型程序运行时错误检测系统的结构框图。如图3,该无漏报的中断驱动型程序运行时错误检测系统,包括:抽象处理模块301,用于对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序;集合建立模块302,用于根据所述抽象程序,建立共享变量数值抽象集;解析模块303,用于对所述共享变量数值抽象集进行解析,得到中断间干扰集;分析模块304,用于根据所述中断间干扰集进行模块化分析,得到模块化分析结果;判定模块305,用于根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。
对于系统实施例而言,由于其与方法实施例相对应,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
本说明中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属本领域专业技术人员的公知技术。

Claims (10)

1.一种无漏报的中断驱动型程序运行时错误检测方法,其特征在于,包括:
对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序;
根据所述抽象程序,建立共享变量数值抽象集;
对所述共享变量数值抽象集进行解析,得到中断间干扰集;
根据所述中断间干扰集进行模块化分析,得到模块化分析结果;
根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。
2.如权利要求1所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序,包括:
对所述待处理程序进行变量提取,将提取得到的变量转化为满足设定条件的抽象域;根据所述抽象域确定用抽象数值表达的抽象程序。
3.如权利要求2所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述抽象域满足如下设定条件:
可表示实数范围内的任意数值;
任意两个抽象数值的合并结果仍为抽象数值,且,所述任意两个抽象数值均小于或等于所述任意两个抽象数值的合并结果;
存在一个最小抽象数值,其中,任意抽象数值与最小抽象数值的合并结果均为所述任意抽象数值本身;
存在一个最大抽象数值,其中,任意抽象数值与最大抽象数值的合并结果均为所述最大抽象数值。
4.如权利要求1所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述对待处理程序进行抽象处理,得到用数值表达的抽象程序,包括:
通过人工标注确定待处理程序的主函数、所有中断的入口、以及每个中断的中断优先级;
通过人工标注确定待处理程序的中中断使能寄存器对应的变量或地址;
将待处理程序的所有数值操作转为对抽象数值的操作,得到用数值表达的抽象程序。
5.如权利要求1所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述根据所述抽象程序,建立共享变量数值抽象集,包括:
对抽象程序进行解析,得到抽象程序中的全部共享变量;
将全部共享变量对应的抽象数值作为一个集合,得到共享变量数值抽象集。
6.如权利要求5所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,共享变量满足如下条件:
存在一个全局变量A,在至少两个中断或主函数对所述全局变量A进行读写操作,且读写操作存在域不同中断或主函数;
或,
存在一个内存A,在至少两个中断或主函数对所述内存A进行读写操作,且读写操作存在域不同中断或主函数。
7.如权利要求1所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述对所述共享变量数值抽象集进行解析,得到中断间干扰集,包括:
对共享变量数值抽象集对应的全部共享变量进行解析,记录每个中断和主函数对共享变量的读写操作;
在一个中断或主函数对共享变量进行读写操作时,将中断或主函数与对应的共享变量组成的二元组作为一个干扰信息进行记录;
重复上述步骤,直至获得全部干扰信息,形成中断间干扰集。
8.如权利要求1所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述根据所述中断间干扰集进行模块化分析,得到模块化分析结果,包括:
以每个中断或主函数作为一个模块,在中断间干扰集中查找所有模块对应的干扰;
从共享变量数值抽象集中提取出中断或主函数对应的共享变量对应的抽象数值,合并在中断或主函数的入口;
遍历程序,直至所有模块的出口的所有变量的抽象数值不再发生变化为止,得到模块化分析结果。
9.如权利要求1所述的无漏报的中断驱动型程序运行时错误检测方法,其特征在于,所述根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行错误,包括:
根据所述模块化分析结果,遍历抽象程序每一个语句以及语句涉及变量对应的抽象数值;
当抽象数值满足数值型运行时错误条件,确定语句在实际执行时发生运行时错误。
10.一种无漏报的中断驱动型程序运行时错误检测系统,其特征在于,包括:
抽象处理模块,用于对待处理程序进行抽象处理,得到用抽象数值表达的抽象程序;
集合建立模块,用于根据所述抽象程序,建立共享变量数值抽象集;
解析模块,用于对所述共享变量数值抽象集进行解析,得到中断间干扰集;
分析模块,用于根据所述中断间干扰集进行模块化分析,得到模块化分析结果;
判定模块,用于根据所述模块化分析结果,遍历所述抽象程序,得到遍历结果,并根据遍历结果确定待处理程序是否存在运行时错误。
CN201811232920.0A 2018-10-23 2018-10-23 一种无漏报的中断驱动型程序运行时错误检测方法和系统 Active CN109388573B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811232920.0A CN109388573B (zh) 2018-10-23 2018-10-23 一种无漏报的中断驱动型程序运行时错误检测方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811232920.0A CN109388573B (zh) 2018-10-23 2018-10-23 一种无漏报的中断驱动型程序运行时错误检测方法和系统

Publications (2)

Publication Number Publication Date
CN109388573A true CN109388573A (zh) 2019-02-26
CN109388573B CN109388573B (zh) 2022-03-04

Family

ID=65426764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811232920.0A Active CN109388573B (zh) 2018-10-23 2018-10-23 一种无漏报的中断驱动型程序运行时错误检测方法和系统

Country Status (1)

Country Link
CN (1) CN109388573B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124723A (zh) * 2019-11-04 2020-05-08 北京轩宇信息技术有限公司 基于干扰变量的中断驱动型程序整数溢出模型检测方法
CN111159022A (zh) * 2019-12-20 2020-05-15 北京轩宇信息技术有限公司 基于单变量访问序模式的中断数据访问冲突检测方法及装置
CN111475420A (zh) * 2020-05-08 2020-07-31 中国人民解放军国防科技大学 一种基于数值抽象的程序资源使用量自动分析方法
CN115033472A (zh) * 2022-04-18 2022-09-09 大连理工大学 基于线程循环调度顺序化的中断驱动程序模型检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120233599A1 (en) * 2011-03-11 2012-09-13 Oracle International Corporation Efficient model checking technique for finding software defects
CN103617115A (zh) * 2013-10-30 2014-03-05 北京信息控制研究所 一种基于抽象解释和模型验证的运行时错误分析方法
CN103778062A (zh) * 2014-01-23 2014-05-07 中国人民解放军国防科学技术大学 基于抽象解释的多中断程序数据访问冲突检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120233599A1 (en) * 2011-03-11 2012-09-13 Oracle International Corporation Efficient model checking technique for finding software defects
CN103617115A (zh) * 2013-10-30 2014-03-05 北京信息控制研究所 一种基于抽象解释和模型验证的运行时错误分析方法
CN103778062A (zh) * 2014-01-23 2014-05-07 中国人民解放军国防科学技术大学 基于抽象解释的多中断程序数据访问冲突检测方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124723A (zh) * 2019-11-04 2020-05-08 北京轩宇信息技术有限公司 基于干扰变量的中断驱动型程序整数溢出模型检测方法
CN111124723B (zh) * 2019-11-04 2023-04-14 北京轩宇信息技术有限公司 基于干扰变量的中断驱动型程序整数溢出模型检测方法
CN111159022A (zh) * 2019-12-20 2020-05-15 北京轩宇信息技术有限公司 基于单变量访问序模式的中断数据访问冲突检测方法及装置
CN111475420A (zh) * 2020-05-08 2020-07-31 中国人民解放军国防科技大学 一种基于数值抽象的程序资源使用量自动分析方法
CN111475420B (zh) * 2020-05-08 2023-04-28 中国人民解放军国防科技大学 一种基于数值抽象的程序资源使用量自动分析方法
CN115033472A (zh) * 2022-04-18 2022-09-09 大连理工大学 基于线程循环调度顺序化的中断驱动程序模型检测方法
CN115033472B (zh) * 2022-04-18 2024-03-22 大连理工大学 基于线程循环调度顺序化的中断驱动程序模型检测方法

Also Published As

Publication number Publication date
CN109388573B (zh) 2022-03-04

Similar Documents

Publication Publication Date Title
CN109388573A (zh) 一种无漏报的中断驱动型程序运行时错误检测方法和系统
US10664601B2 (en) Method and system automatic buffer overflow warning inspection and bug repair
CN102760095B (zh) 基于静态共享变量识别的动态数据竞争检测方法
CN102402479B (zh) 用于静态分析的中间表示结构
CN104536898B (zh) C程序并行区域的检测方法
CN101714119A (zh) 基于二进制程序的测试数据生成器和方法
CN102662825B (zh) 一种面向堆操作程序的内存泄漏检测方法
He et al. Sofi: Reflection-augmented fuzzing for javascript engines
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
CN111104335A (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN103294596A (zh) 一种基于程序不变量的合约式软件故障预警方法
CN107085533A (zh) 一种指针修改影响的分析方法和系统
KR101886203B1 (ko) 프로그램 분석 장치 및 방법
US8185881B2 (en) Procedure summaries for pointer analysis
KR101696694B1 (ko) 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
CN103778062A (zh) 基于抽象解释的多中断程序数据访问冲突检测方法
CN103200203A (zh) 基于执行轨迹的语义级协议格式推断方法
Christakis et al. IC-Cut: A compositional search strategy for dynamic test generation
Christakis et al. Bounded abstract interpretation
CN115039083A (zh) 逻辑连接程序执行时生成的异步算法合法性验证使能方法
Kothari et al. Human-machine resolution of invisible control flow?
CN108132799A (zh) 过程间静态程序分析信息提取方法、装置及设备
CN101571814B (zh) 基于消息传递接口的设备的通信行为信息提取方法及系统
McDermott et al. Call-by-need effects via coeffects

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