基于抽象解释的软件检测方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:25755998 阅读:23 留言:0更新日期:2020-09-25 21:05
本发明专利技术适用于计算机技术领域,尤其涉及一种基于抽象解释的软件检测方法、装置、计算机设备和存储介质,所述方法包括:获取待检测软件的标注有抽象解释检测需求信息的软件源代码;根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果。本发明专利技术提供的软件检测方法通过预先对待检测软件的软件源代码的源代码进行抽象解释检测需求标注,使得软件源代码上标注有抽象解释检测需求信息,然后根据抽象解释检测需求信息对待检测软件进行检测,通过对待检测软件中标注及关联部分进行检测分析,无需对整个待检测软件进行检测分析,有效地降低了检测时的占用存储空间,提高了基于抽象解释的检测效率,可以更好的应用在大规模软件的检测上。

【技术实现步骤摘要】
基于抽象解释的软件检测方法、装置、计算机设备和存储介质
本专利技术属于计算机
,尤其涉及一种基于抽象解释的软件检测方法、装置、计算机设备和存储介质。
技术介绍
抽象解释在遍历中间表示时通过近似程序语义来搜集程序信息,从而可以静态的分析程序运行时的行为,以更早的发现程序潜在的缺陷和漏洞、及时修正,避免在真实运行时出错或发生安全暴露利用。然而,由于软件规模的快速扩张,抽象解释在大规模的软件分析的应用过程中,存在性能上的限制。现有的基于抽象解释的软件检测方法在大规模的软件分析时还存在着占用存储空间过大、耗时过长的技术问题,导致分析无法在有限时间内完成或由于资源限制被迫终止,影响了软件分析的结果。
技术实现思路
本专利技术实施例的目的在于提供一种基于抽象解释的软件检测方法,旨在解决现有的基于抽象解释的软件检测方法还存在的占用存储空间过大、耗时过长,导致分析无法在有限时间内完成或由于资源限制被迫终止,影响了软件分析的结果的技术问题。本专利技术实施例是这样实现的,一种基于抽象解释的软件检测方法,包括:获取待检测软件的软件源代码;所述软件源代码上标注有抽象解释检测需求信息;根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果。本专利技术实施例的另一目的在于提供一种基于抽象解释的软件检测装置,包括:软件源代码获取单元,用于获取待检测软件的软件源代码;所述软件源代码上标注有抽象解释检测需求信息;软件检测单元,用于根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果。本专利技术实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述所述基于抽象解释的软件检测方法的步骤。本专利技术实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述所述基于抽象解释的软件检测方法的步骤。本专利技术实施例提供的一种基于抽象解释的软件检测方法,通过预先对待检测软件的软件源代码的源代码进行抽象解释检测需求标注,使得软件源代码上标注有抽象解释检测需求信息,然后根据抽象解释检测需求信息对所述待检测软件进行检测,通过对待检测软件中标注及关联部分进行检测分析,无需对整个待检测软件进行检测分析,有效地降低了检测时的占用存储空间,提高了基于抽象解释的检测效率,可以更好的应用在大规模软件的检测上。附图说明图1为本专利技术实施例提供的一种基于抽象解释的软件检测方法的步骤流程图;图2为本专利技术实施例提供的一种基于抽象解释检测需求信息进行检测的步骤流程图;图3为本专利技术实施例提供的一种基于检测需求中介码进行检测的步骤流程图;图4为本专利技术实施例提供的另一种基于检测需求中介码进行检测的步骤流程图;图5为本专利技术实施例提供的一种基于抽象解释的软件检测装置的结构示意图;图6为本专利技术实施例提供的一种软件检测单元的结构示意图;图7为本专利技术实施例提供的一种软件检测次单元的结构示意图;图8为本专利技术实施例提供的一种上下文信息获取模块的结构示意图;图9为本专利技术实施例提供的一种执行基于抽象解释的软件检测方法的计算机设备的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,为本专利技术实施例提供的一种基于抽象解释的软件检测方法的步骤流程图,具体包括以下步骤:步骤S102,获取待检测软件的软件源代码。在本专利技术实施例中,所述软件源代码上标注有抽象解释检测需求信息。在本专利技术实施例中,所述抽象解释检测需求信息是预先标注在待检测软件的软件源代码上。步骤S104,根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果。在本专利技术实施例中,基于抽象解释检测需求信息对待检测软件进行检测,可以实现对待检测软件中标注的部分进行检测分析,而无需对整个待检测软件进行检测分析。在本专利技术实施例中,根据抽象解释检测需求信息对待检测软件进行检测的具体过程请参阅图2及其解释说明。本专利技术实施例提供的一种基于抽象解释的软件检测方法,通过预先对待检测软件的软件源代码的源代码进行抽象解释检测需求标注,使得软件源代码上标注有抽象解释检测需求信息,然后根据抽象解释检测需求信息对所述待检测软件进行检测,通过对待检测软件中标注及关联部分进行检测分析,无需对整个待检测软件进行检测分析,有效地降低了检测时的占用存储空间,提高了基于抽象解释的检测效率,可以更好的应用在大规模软件的检测上。如图2所示,为本专利技术实施例提供的一种基于抽象解释检测需求信息进行检测的步骤流程图,具体包括以下步骤:步骤S202,将所述待检测软件的软件源代码转化为以静态单赋值形式表示的软件中介码。在本专利技术实施例中。所述以静态单赋值形式表示的软件中介码是指保留了软件源代码控制流信息的内部表示,可直接利用相关软件进行转化。步骤S204,将所述抽象解释检测需求信息转化为以静态单赋值形式表示的检测需求中介码。在本专利技术实施例中,同样的,也可以利用相关软件直接对抽象解释检测需求信息进行转化。步骤S206,根据所述检测需求中介码对所述软件中介码进行检测分析,得到软件检测结果。在本专利技术实施例中,由于软件中介码以及检测需求中介码均保留了源代码的控制流信息,根据所述检测需求中介码以及所述软件中介码可以判断抽象解释在软件模块内部会否导致错误,即得到软件检测结果。如图3所示,为本专利技术实施例提供的基于检测需求中介码进行检测的步骤流程图,具体包括以下步骤:步骤S302,遍历所述软件中介码的所有语句,并确定存在抽象解释检测需求的目标语句。在本专利技术实施例中,通过对软件中介码中的语句进行检索,确定出标注有抽象解释检测需求信息的语句,所述标注有抽象解释检测需求信息的语句即为所述存在抽象解释检测需求的目标语句。步骤S304,根据所述检测需求中介码获取与所述目标语句关联的关联语句的上下文信息。在本专利技术实施例中,所述检测需求中介码包含的抽象解释检测需求信息往往需要来源于软件的其他模块,通过链接来源模块,就可以在来源模块中获取到与所述目标语句关联的关联语句的上下文信息。步骤S306,根据所述上下文信息以及所述检测需求中介码对所述软件中介码进行检测分析,得到软件检测结果。在本专利技术实施例中,结合上下文信息对所述软件中介码进行检测分析,就能够得到软件检测结果。如图4所示,为本专利技术实施例提供的另一种基于检测需求中介码进行检测的步骤流程图,详述如下。在本专利技术实施例中,与图3所示出的一种基于检测需求中介码进行检测的步骤流程图的区别在于,所述步骤S3本文档来自技高网...

【技术保护点】
1.一种基于抽象解释的软件检测方法,其特征在于,包括:/n获取待检测软件的软件源代码;所述软件源代码上标注有抽象解释检测需求信息;/n根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果。/n

【技术特征摘要】
1.一种基于抽象解释的软件检测方法,其特征在于,包括:
获取待检测软件的软件源代码;所述软件源代码上标注有抽象解释检测需求信息;
根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果。


2.根据权利要求1所述的软件检测方法,其特征在于,所述根据所述抽象解释检测需求信息对所述待检测软件进行检测,得到检测结果的步骤,具体包括:
将所述待检测软件的软件源代码转化为以静态单赋值形式表示的软件中介码;
将所述抽象解释检测需求信息转化为以静态单赋值形式表示的检测需求中介码;
根据所述检测需求中介码对所述软件中介码进行检测分析,得到软件检测结果。


3.根据权利要求2所述的软件检测方法,其特征在于,所述根据所述检测需求中介码对所述软件中介码进行检测分析,得到软件检测结果的步骤,具体包括:
遍历所述软件中介码的所有语句,并确定存在抽象解释检测需求的目标语句;
根据所述检测需求中介码获取与所述目标语句关联的关联语句的上下文信息;
根据所述上下文信息以及所述检测需求中介码对所述软件中介码进行检测分析,得到软件检测结果。


4.根据权利要求3所述的软件检测方法,其特征在于,所述根据所述检测需求中介码获取与所述目标语句关联的关联语句的上下文信息的步骤,具体包括:
判断在所述目标语句上所述抽象解释检测需求的所需信息是否完整;
当判断所述目标语句上所述抽象解释检测需求的所需信息不完整时,根据所述检测需求中介码获取与所述目标语句关联的关联语句的上下文信息。


5.一种基于抽象解释的软件检测装置,其特征在于,包括:
软件源代码获取单元,用于获取待检测软件的软件源代码;所述软件源代码上标注有抽象解释检测需求信息;
软件检测单元,用于根据所述抽象解释检测需求信息对所述待检测软件进行检测...

【专利技术属性】
技术研发人员:李隆朱庆李世杰赖建新
申请(专利权)人:XC五香港有限公司相持软件深圳有限公司
类型:发明
国别省市:中国香港;81

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

1