CN112380122A - 通用资源静态检测方法、装置、计算机设备及存储介质 - Google Patents

通用资源静态检测方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112380122A
CN112380122A CN202011268295.2A CN202011268295A CN112380122A CN 112380122 A CN112380122 A CN 112380122A CN 202011268295 A CN202011268295 A CN 202011268295A CN 112380122 A CN112380122 A CN 112380122A
Authority
CN
China
Prior art keywords
universal resource
internal representation
representation information
static
software
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.)
Pending
Application number
CN202011268295.2A
Other languages
English (en)
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.)
Shenzhen Zhishi Network Technology Co ltd
Original Assignee
Stalemate Software Shenzhen Co ltd
Xc5 Hong Kong 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 Stalemate Software Shenzhen Co ltd, Xc5 Hong Kong Ltd filed Critical Stalemate Software Shenzhen Co ltd
Priority to CN202011268295.2A priority Critical patent/CN112380122A/zh
Publication of CN112380122A publication Critical patent/CN112380122A/zh
Pending legal-status Critical Current

Links

Images

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本发明适用于计算机技术领域,提供了一种通用资源静态检测方法、装置、计算机设备及存储介质,所述方法包括:根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;根据通用资源的内部表示信息构建通用资源静态检测模型;根据通用资源静态检测模型对待静态检测软件进行静态检测。本发明实施例提供的通用资源静态检测方法,通过预先自定义一些通用资源识别规则并利用该通用资源识别规则对软件源代码的内部表示信息进行处理,生成了与用户自定义通用资源相关的内部表示信息,然后利用该内部表示信息构建出通用资源静态检测模型并进行静态检测,实现了对软件中与用户自定义的通用资源的静态检测。

Description

通用资源静态检测方法、装置、计算机设备及存储介质
技术领域
本发明属于计算机技术领域,尤其涉及一种通用资源静态检测方法、装置、计算机设备及存储介质。
背景技术
随着软件行业不断发展,软件的业务功能和代码逻辑的复杂性都日益增加。在软件的代码实现中,开发者需要对某些资源格外关注,以保证软件可以正常运行。而利用静态检测工具,能够检测开发者对资源的使用是否正确,可以显著提升软件的质量,保证软件正常运行,保证软件的业务流正常进行,可以避免资源使用错误造成的种种潜在风险。
其中,开发者所关注的资源不仅包括计算机语言中的内置资源,例如分配的内存,文件等;还包括了与用户的业务流相关的资源,例如敏感数据、受污染的数据、cookie等等。然而,由于用户的业务流相关的资源通常和用户的业务相关,是通过用户自定义函数或者用户调用的库函数的语义产生的,用户的业务流程千差万别,此类资源对应的操作和资源的状态可以是多种多样的。因此,现有的静态检测工具大多数只能对语言内置资源建模进行静态检测,而无法对用户业务流的相关资源建模来实现静态检测。
可见,现有技术还无法实现对用户业务流的相关资源的静态检测。
发明内容
本发明实施例的目的在于提供一种通用资源静态检测方法、装置、计算机设备及存储介质,旨在解决现有技术还存在的无法实现对用户业务流的相关资源的静态检测的技术问题。
本发明实施例是这样实现的,一种通用资源静态检测方法,包括:
根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;所述待静态检测软件的内部表示信息以静态单赋值形式存在;
根据所述通用资源的内部表示信息构建通用资源静态检测模型;
根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
本发明实施例的另一目的在于提供一种通用资源静态检测装置,包括:
通用资源内部表示信息创建模块,用于根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;所述待静态检测软件的内部表示信息是以静态单赋值形式存在;
通用资源静态检测模型构建模块,用于根据所述通用资源的内部表示信息构建通用资源静态检测模型;
静态检测模块,用于根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
本发明实施例的另一目的在于提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上述所述通用资源静态检测方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如上述所述通用资源静态检测方法的步骤。
本发明实施例提供的一种通用资源静态检测方法,通过预先自定义一些通用资源识别规则并利用该通用资源识别规则对软件源代码的内部表示信息进行处理,生成通用资源的内部表示信息,这样通用资源的内部表示信息就包含了与用户自定义的通用资源相关的信息,然后利用该内部表示信息构建出与用户自定义的通用资源相关的通用资源静态检测模型,并最终利用该通用资源静态检测模型进行静态检测,从而实现了对软件中与用户自定义的一些通用资源相关的静态检测。本发明实施例提供的通用资源静态检测方法能够很好地弥补现有静态检测技术的缺陷,能够实现对用户业务流的相关资源或者其他任意自定义资源的建模,从而实现对软件中与用户业务流相关的资源或者其他任意自定义资源的静态检测。
附图说明
图1为本发明实施例提供的一种通用资源静态检测方法的步骤流程图;
图2为本发明实施例提供的一种生成通用资源的内部表示信息的步骤流程图;
图3为本发明实施例提供的另一种生成通用资源的内部表示信息的步骤流程图;
图4为本发明实施例提供的另一种通用资源静态检测方法的步骤流程图;
图5为本发明实施例提供的又一种通用资源静态检测方法的步骤流程图;
图6为本发明实施例提供的再一种通用资源静态检测方法的步骤流程图;
图7为本发明实施例提供的一种更新上下文信息的步骤流程图;
图8为本发明实施例提供的一种通用资源静态检测装置的结构示意图;
图9为本发明实施例提供的一种执行通用资源静态检测方法的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明实施例提供的一种通用资源静态检测方法的步骤流程图,具体包括以下步骤:
步骤S102,根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息。
在本发明实施例中,所述待静态检测软件的内部表示信息以静态单赋值形式存在。
在本发明实施例中,在利用通用资源识别规则对待静态检测软件处理以识别出通用资源之前,需要加载通用资源识别规则。其中通用资源识别规则是预先定义好的一些规则,可以根据这些规则判断语句中是否有需要关心的通用资源,该语句对通用资源进行了什么种类的操作,例如下方列举出了一些可行的通用资源识别规则形式:
1)当语句为函数调用语句时,如果被调用函数名称是“malloc”,则返回值是需要关注的通用资源,该资源对应的操作是分配内存。(此类资源属于计算机语言的内置资源);
2)当语句为赋值语句时,如果被赋值的变量名包含“password”关键字,则被赋值的变量是需要关注的通用资源,该资源对应的操作是生成敏感数据。(此类资源属于用户业务流相关资源)。
在本发明实施例中,基于上述内容可以看出,所述通用资源识别规则包括了通用资源定义信息即什么样的数据是关注的资源,以及通用资源操作信息,即该资源对应的操作是什么。
在本发明实施例中,需要说明的一点是,通用资源识别规则的定义内容应当与软件程序的定义或者程序分析工具的定义分离,也就是在利用程序分析工具对某软件程序进行分析时,以加载的方式载入通用资源识别规则。
在本发明实施例中,而基于资源类型的不同,通用资源识别规则的定义方式也不相同,例如对于计算机语言的内置资源(如前述例子1),由于此类资源在计算机语言定义完成之后,资源种类、资源操作和资源状态均已确定,所以针对于此类资源的识别规则也是确定的,可以预先由任一方自行定义。而对于用户业务流相关资源(如前述例子2),包含两种情形,一种是与用户自定义函数相关的资源,另一种是与用户调用的公开库函数相关的资源,此时也可以根据实际情形,采用不同的策略来提供或者自定义资源识别规则。通常来说,与用户自定义函数相关的资源,无法由第三方事先定义,需要用户自行定义此类资源的识别规则,例如根据不同的用户函数的语义,通用资源是如何产生,资源状态如何变化,如何使用资源,如何检查资源的状态等等。而如果是与用户调用的公开库函数相关的资源,如果库函数的语义在库函数定义好之后已经确定,且资源种类、资源操作和资源状态等信息也已经确定,则可以由第三方事先定义,也可以由用户自行定义。
在本发明实施例中,所述通用资源识别规则除了应当包含的通用资源定义信息以及通用资源操作信息外,还应当支持多种组合条件,用来精准识别程序语义中的资源,从而支持对任意语言的任意语句进行识别。
在本发明实施例中,根据第三方预先定义的通用资源识别规则或者用户自定义的针对用户程序的通用资源识别规则,分析用户的程序,即可识别出待静态检测软件中是如何操作通用资源识别规则中所定义的资源,并对其进行标识,从而可以进一步生成通用资源的内部表示。其中通用资源的内部表示一般要求包含尽可能多的与通用资源相关的信息,包括并不限于通用资源识别规则,通用资源种类、操作、状态转换等信息。
在本发明实施例中,具体生成通用资源的内部表示信息的步骤请参阅图2、图3的解释说明。
步骤S104,根据所述通用资源的内部表示信息构建通用资源静态检测模型。
在本发明实施例中,利用预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,可以生成通用资源的内部表示信息,其包含了大量与通用资源相关的信息,例如通用资源识别规则,通用资源种类、操作、状态转换等信息,进一步可以根据通用资源的内部表示信息构建出通用资源静态检测模型。
步骤S106,根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
在本发明实施例中,使用通用资源的建模结果也就是通用资源静态检测模型,就可以实现对静态检测软件的静态检测,其中静态检测的结果与用户自定义的通用资源相关。该过程属于常规的静态检测过程,在此不做赘述。
本发明实施例提供的一种通用资源静态检测方法,通过预先自定义一些通用资源识别规则并利用该通用资源识别规则对软件源代码的内部表示信息进行处理,生成通用资源的内部表示信息,这样通用资源的内部表示信息就包含了与用户自定义的通用资源相关的信息,然后利用该内部表示信息构建出与用户自定义的通用资源相关的通用资源静态检测模型,并最终利用该通用资源静态检测模型进行静态检测,从而实现了对软件中与用户自定义的一些通用资源相关的静态检测。本发明实施例提供的通用资源静态检测方法能够很好地弥补现有静态检测技术的缺陷,能够实现对用户业务流的相关资源或者其他任意自定义资源的建模,从而实现对软件中与用户业务流相关的资源或者其他任意自定义资源的静态检测。
如图2所示,为本发明实施例提供的一种生成通用资源的内部表示信息的步骤流程图,具体包括以下步骤:
步骤S202,遍历待静态检测软件的内部表示信息。
在本发明实施例中,所述待静态检测软件的内部表示信息是以静态单赋值形式存在。
在本发明实施例中,待静态检测软件的内部表示信息也是由一条条程序语句组成的,遍历待静态检测软件的内部表示信息可以理解为对该程序语句进行逐条分析。
在本发明实施例中,结合前述对识别规则的描述可知,通用资源识别规则通常包括通用资源定义信息以及通用资源操作信息。
步骤S204,判断当前访问语句是否满足所述通用资源识别规则。当判断当前访问语句满足所述通用资源识别规则时,执行步骤S206;当判断当前访问语句不满足所述通用资源识别规则时,执行其他步骤。
在本发明实施例中,由于需要对待静态检测软件的内部表示信息中的每一条程序语句进行逐条分析,具体的判断当前访问的语句是否满足所述资源识别规则,例如以前述所列举出的第一条通用资源识别规则作为示例,则需要先判断当前访问语句是否为函数调用语句,并进一步判断被调用的函数名称是否为“malloc”。
在本发明实施例中,当判断当前访问语句不满足所述通用资源识别规则时,通常会跳至下一条未访问的语句,直至每一条语句都被访问过,则结束待静态检测软件的内部表示信息的遍历过程;而当判断出当前访问语句满足所述通用资源识别规则时,则需要按照所述通用资源识别规则进行操作,具体见步骤S206的论述。
步骤S206,根据所述通用资源定义信息以及所述通用资源操作信息在当前访问语句上生成通用资源的内部表示信息。
在本发明实施例中,当判断出当前访问语句满足上述条件时,也就是当当前访问语句是函数调用语句,且被调用的函数名称是“malloc”,此时需要进一步根据通用资源识别规则在该语句上标注通用资源的属性信息,也就是将该语句的返回值标记为通用资源,并标识出该资源对应的操作是分配内存,保留通用资源操作、状态转换等相关信息,从而生成通用资源识别规则的内部表示。
如图3所示,为本发明实施例提供的另一种生成通用资源的内部表示信息的步骤流程图,详述如下。
在本发明实施例中,与图2所示出的一种生成通用资源的内部表示信息的步骤流程图的区别在于,在所述步骤S206之后,还包括:
步骤S302,根据静态单赋值算法将所述通用资源的内部表示信息转换成以静态单赋值形式存在的内部表示信息。
在本发明实施例中,需要对通用资源的内部表示信息进行静态单赋值转化,也就是根据静态单赋值算法将所述通用资源的内部表示信息转换成以静态单赋值形式存在的内部表示信息,从而便于后续的静态检测的实现。
如图4所示,为本发明实施例提供的另一种通用资源静态检测方法的步骤流程图,详述如下。
在本发明实施例中,与图1所示出的一种通用资源静态检测方法的步骤流程图的区别在于,在所述步骤S102之前,还包括:
步骤S402,根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息。
在本发明实施例中,由于通用资源识别规则只能对以静态单赋值形式存在的待静态检测软件中的通用资源进行识别,而用户在对软件进行静态检测时通常只能获取到软件的源代码信息,因此,需要根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息,从而实现后续的通用资源识别过程。
如图5所示,为本发明实施例提供的又一种通用资源静态检测方法的步骤流程图,详述如下。
在本发明实施例中,与图4所示出的另一种通用资源静态检测方法的步骤流程图的区别在于,所述步骤S402,具体包括:
步骤S502,根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息,并获取软件内各个模块的上下文信息。
在本发明实施例中,在根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息之后,需要搜集软件内各个模块的上下文信息,并标注于内部表示上。通常情况下,软件内各个模块的上下文信息包括模块内部的上下文信息以及跨模块的上下文信息。
在本发明实施例中,搜集软件内各个模块的上下文信息,并标注于内部表示上,结合通用资源的内部表示信息能够构建出资源静态检测模型,从而实现后续的静态检测分析过程。
如图6所示,为本发明实施例提供的再一种通用资源静态检测方法的步骤流程图,详述如下。
在本发明实施例中,与图5所示出的另一种通用资源静态检测方法的步骤流程图的区别在于,所述步骤S104具体包括:
步骤S602,根据所述通用资源的内部表示信息更新所述上下文信息,并构建通用资源静态检测模型。
在本发明实施例中,由于软件内各个模块的上下文信息包括模块内部的上下文信息以及跨模块的上下文信息,当检查出通用资源的内部表示信息存在着跨模块的行为,例如引用了外部通用资源、修改了外部通用资源或者返回了通用资源到外部的行为,则需要根据通用资源的内部表示信息重新更新软件内各个模块中相关的上下文信息,从而构建出通用资源静态检测模型。
如图7所示,为本发明实施例提供的一种更新上下文信息的步骤流程图,具体包括以下步骤:
步骤S702,根据所述通用资源的内部表示信息判断当前访问模块是否存在外部通用资源的操作信息。当判断当前访问模块存在外部通用资源的操作信息时,执行步骤S704;当判断当前访问模块不存在外部通用资源的操作信息时,执行其他步骤。
在本发明实施例中,主要用于对前述图6中步骤S602的解释说明。
在本发明实施例中,在利用通用资源的内部表示信息构建通用资源静态检测模型时,通常需要遍历软件内各个模块的上下文信息,此时通过判断当前访问模块是否存在外部通用资源的操作信息,例如引用了外部通用资源、修改了外部通用资源或者返回了通用资源到外部的行为,当存在时,则需要更新当前访问模块中与所述外部通用资源相关的上下文信息。
步骤S704,更新当前访问模块中与所述外部通用资源相关的上下文信息。
如图8所示,为本发明实施例提供的一种通用资源静态检测装置的结构示意图,详述如下。
在本发明实施例中,所述通用资源静态检测装置具体包括:
通用资源内部表示信息创建模块810,用于根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息。
在本发明实施例中,所述待静态检测软件的内部表示信息以静态单赋值形式存在。
在本发明实施例中,在利用通用资源识别规则对待静态检测软件处理以识别出通用资源之前,需要加载通用资源识别规则。其中通用资源识别规则是预先定义好的一些规则,可以根据这些规则判断语句中是否有需要关心的通用资源,该语句对通用资源进行了什么种类的操作,例如下方列举出了一些可行的通用资源识别规则形式:
3)当语句为函数调用语句时,如果被调用函数名称是“malloc”,则返回值是需要关注的通用资源,该资源对应的操作是分配内存。(此类资源属于计算机语言的内置资源);
4)当语句为赋值语句时,如果被赋值的变量名包含“password”关键字,则被赋值的变量是需要关注的通用资源,该资源对应的操作是生成敏感数据。(此类资源属于用户业务流相关资源)。
在本发明实施例中,基于上述内容可以看出,所述通用资源识别规则包括了通用资源定义信息即什么样的数据是关注的资源,以及通用资源操作信息,即该资源对应的操作是什么。
在本发明实施例中,需要说明的一点是,通用资源识别规则的定义内容应当与软件程序的定义或者程序分析工具的定义分离,也就是在利用程序分析工具对某软件程序进行分析时,以加载的方式载入通用资源识别规则。
在本发明实施例中,而基于资源类型的不同,通用资源识别规则的定义方式也不相同,例如对于计算机语言的内置资源(如前述例子1),由于此类资源在计算机语言定义完成之后,资源种类、资源操作和资源状态均已确定,所以针对于此类资源的识别规则也是确定的,可以预先由任一方自行定义。而对于用户业务流相关资源(如前述例子2),包含两种情形,一种是与用户自定义函数相关的资源,另一种是与用户调用的公开库函数相关的资源,此时也可以根据实际情形,采用不同的策略来提供或者自定义资源识别规则。通常来说,与用户自定义函数相关的资源,无法由第三方事先定义,需要用户自行定义此类资源的识别规则,例如根据不同的用户函数的语义,通用资源是如何产生,资源状态如何变化,如何使用资源,如何检查资源的状态等等。而如果是与用户调用的公开库函数相关的资源,如果库函数的语义在库函数定义好之后已经确定,且资源种类、资源操作和资源状态等信息也已经确定,则可以由第三方事先定义,也可以由用户自行定义。
在本发明实施例中,所述通用资源识别规则除了应当包含的通用资源定义信息以及通用资源操作信息外,还应当支持多种组合条件,用来精准识别程序语义中的资源,从而支持对任意语言的任意语句进行识别。
在本发明实施例中,根据第三方预先定义的通用资源识别规则或者用户自定义的针对用户程序的通用资源识别规则,分析用户的程序,即可识别出待静态检测软件中是如何操作通用资源识别规则中所定义的资源,并对其进行标识,从而可以进一步生成通用资源的内部表示。其中通用资源的内部表示一般要求包含尽可能多的与通用资源相关的信息,包括并不限于通用资源识别规则,通用资源种类、操作、状态转换等信息。
通用资源静态检测模型构建模块820,用于根据所述通用资源的内部表示信息构建通用资源静态检测模型。
在本发明实施例中,利用预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,可以生成通用资源的内部表示信息,其包含了大量与通用资源相关的信息,例如通用资源识别规则,通用资源种类、操作、状态转换等信息,进一步可以根据通用资源的内部表示信息构建出通用资源静态检测模型。
静态检测模块830,用于根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
在本发明实施例中,使用通用资源的建模结果也就是通用资源静态检测模型,就可以实现对待检测软件的静态检测,其中静态检测的结果与用户自定义的通用资源相关。该过程属于常规的静态检测过程,在此不做赘述。
本发明实施例提供的一种通用资源静态检测装置,通过预先自定义一些通用资源识别规则并利用该通用资源识别规则对软件源代码的内部表示信息进行处理,生成通用资源的内部表示信息,这样通用资源的内部表示信息就包含了与用户自定义的通用资源相关的信息,然后利用该内部表示信息构建出与用户自定义的通用资源相关的通用资源静态检测模型,并最终利用该通用资源静态检测模型进行静态检测,从而实现了对软件中与用户自定义的一些通用资源相关的静态检测。本发明实施例提供的通用资源静态检测装置能够很好地弥补现有静态检测技术的缺陷,能够实现对用户业务流的相关资源或者其他任意自定义资源的建模,从而实现对软件中与用户业务流相关的资源或者其他任意自定义资源的静态检测。
图9示出了一个实施例中计算机设备的内部结构图。如图9所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现通用资源静态检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行通用资源静态检测方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的通用资源静态检测装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该通用资源静态检测装置的各个程序模块,比如,各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的通用资源静态检测方法中的步骤。
例如,图9所示的计算机设备可以通过如图8所示的通用资源静态检测装置中的通用资源内部表示信息创建模块810执行步骤S102;计算机设备可通过通用资源静态检测模型构建模块820执行步骤S104;计算机设备可通过静态检测模块830执行步骤S106。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;所述待静态检测软件的内部表示信息以静态单赋值形式存在;
根据所述通用资源的内部表示信息构建通用资源静态检测模型;
根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
在一个实施例中,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:
根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;所述待静态检测软件的内部表示信息以静态单赋值形式存在;
根据所述通用资源的内部表示信息构建通用资源静态检测模型;
根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
应该理解的是,虽然本发明各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各实施例中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种通用资源静态检测方法,其特征在于,包括:
根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;所述待静态检测软件的内部表示信息以静态单赋值形式存在;
根据所述通用资源的内部表示信息构建通用资源静态检测模型;
根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
2.根据权利要求1所述的通用资源静态检测方法,其特征在于,所述通用资源识别规则包括通用资源定义信息以及通用资源操作信息;所述根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息的步骤,具体包括:
遍历待静态检测软件的内部表示信息;
判断当前访问语句是否满足所述通用资源识别规则;
当判断当前访问语句满足所述通用资源识别规则时,根据所述通用资源定义信息以及所述通用资源操作信息在当前访问语句上生成通用资源的内部表示信息。
3.根据权利要求2所述的通用资源静态检测方法,其特征在于,所述通用资源的内部表示信息以静态单赋值形式存在;在所述根据所述通用资源定义信息以及所述通用资源操作信息在当前访问语句上生成通用资源的内部表示信息的步骤之后,还包括:
根据静态单赋值算法将所述通用资源的内部表示信息转换成以静态单赋值形式存在的内部表示信息。
4.根据权利要求1所述的通用资源静态检测方法,其特征在于,在所述根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理的步骤之前,还包括:
根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息。
5.根据权利要求4所述的通用资源静态检测方法,其特征在于,所述根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息的步骤,具体包括:
根据静态单赋值算法将待静态检测软件的源代码转化为以静态单赋值形式存在的内部表示信息,并获取软件内各个模块的上下文信息。
6.根据权利要求5所述的通用资源静态检测方法,其特征在于,根据所述通用资源的内部表示信息构建通用资源静态检测模型的步骤,具体包括:
根据所述通用资源的内部表示信息更新所述上下文信息,并构建通用资源静态检测模型。
7.根据权利要求6所述的通用资源静态检测方法,其特征在于,所述根据所述通用资源的内部表示信息更新所述上下文信息,并构建通用资源静态检测模型的步骤,具体包括:
根据所述通用资源的内部表示信息判断当前访问模块是否存在外部通用资源的操作信息;
当判断当前访问模块存在外部通用资源的操作信息时,更新当前访问模块中与所述外部通用资源相关的上下文信息。
8.一种通用资源静态检测装置,其特征在于,包括:
通用资源内部表示信息创建模块,用于根据预设的通用资源识别规则对待静态检测软件的内部表示信息进行处理,生成通用资源的内部表示信息;所述待静态检测软件的内部表示信息是以静态单赋值形式存在;
通用资源静态检测模型构建模块,用于根据所述通用资源的内部表示信息构建通用资源静态检测模型;
静态检测模块,用于根据所述通用资源静态检测模型对所述待静态检测软件进行静态检测。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至7中任一项权利要求所述通用资源静态检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至7中任一项权利要求所述通用资源静态检测方法的步骤。
CN202011268295.2A 2020-11-13 2020-11-13 通用资源静态检测方法、装置、计算机设备及存储介质 Pending CN112380122A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011268295.2A CN112380122A (zh) 2020-11-13 2020-11-13 通用资源静态检测方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011268295.2A CN112380122A (zh) 2020-11-13 2020-11-13 通用资源静态检测方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112380122A true CN112380122A (zh) 2021-02-19

Family

ID=74582193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011268295.2A Pending CN112380122A (zh) 2020-11-13 2020-11-13 通用资源静态检测方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112380122A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050166095A1 (en) * 2003-12-23 2005-07-28 Ajay Chander Performing checks on the resource usage of computer programs
CN102968367A (zh) * 2012-08-28 2013-03-13 华南理工大学 一种基于嵌入式软件的静态检测方法及其系统
CN103440196A (zh) * 2013-07-11 2013-12-11 大连交通大学 一种新型操作系统资源问题检测方法
CN106598866A (zh) * 2016-12-22 2017-04-26 合肥国信车联网研究院有限公司 一种基于smali中间语言的静态检测系统及方法
CN111026663A (zh) * 2019-12-09 2020-04-17 Xc5香港有限公司 一种软件缺陷检测方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050166095A1 (en) * 2003-12-23 2005-07-28 Ajay Chander Performing checks on the resource usage of computer programs
CN102968367A (zh) * 2012-08-28 2013-03-13 华南理工大学 一种基于嵌入式软件的静态检测方法及其系统
CN103440196A (zh) * 2013-07-11 2013-12-11 大连交通大学 一种新型操作系统资源问题检测方法
CN106598866A (zh) * 2016-12-22 2017-04-26 合肥国信车联网研究院有限公司 一种基于smali中间语言的静态检测系统及方法
CN111026663A (zh) * 2019-12-09 2020-04-17 Xc5香港有限公司 一种软件缺陷检测方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN110209652B (zh) 数据表迁移方法、装置、计算机设备和存储介质
US8516443B2 (en) Context-sensitive analysis framework using value flows
RU2611966C2 (ru) Рекомендательная система для пополнения данных
US20150220332A1 (en) Resolving merge conflicts that prevent blocks of program code from properly being merged
CN110231994B (zh) 内存分析方法、装置和计算机可读存储介质
JP2017514218A (ja) サードパーティアプリケーションの実行
CN111026663A (zh) 一种软件缺陷检测方法、装置、计算机设备和存储介质
CN111581271A (zh) 接口参数确定方法、装置、计算机设备和存储介质
WO2021120628A1 (zh) 基于区块链的敏感词检测方法、装置、计算机设备和计算机可读存储介质
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
JP2017174418A (ja) モデルチェックのためのデータ構造抽象化
CN113535577B (zh) 基于知识图谱的应用测试方法、装置、电子设备和介质
US8769498B2 (en) Warning of register and storage area assignment errors
US9064042B2 (en) Instrumenting computer program code by merging template and target code methods
CN112799760A (zh) 一种表单渲染方法及其装置
CN114816772B (zh) 基于兼容层运行的应用的排错方法、排错系统及计算设备
CN112380122A (zh) 通用资源静态检测方法、装置、计算机设备及存储介质
CN115795489A (zh) 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置
CN111722881B (zh) 一种容器云平台的资源扩展方法、系统及装置
US9678854B2 (en) Application-centric analysis of leak suspect operations
CN113377376A (zh) 数据包生成方法、数据包生成装置、电子设备及存储介质
CN113139184A (zh) 基于静态分析的Binder通信过载漏洞的检测方法
CN112181831A (zh) 基于关键词的脚本性能校验方法、装置、设备及存储介质
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
Mouzarani et al. A unit-based symbolic execution method for detecting heap overflow vulnerability in executable codes

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 1405, 135 Wenham East Street Commercial Centre, 135 Wenham East Street, Sheung Wan, Hong Kong, China

Applicant after: XC5 Hong Kong Ltd.

Applicant after: Jianshi Technology (Shenzhen) Co.,Ltd.

Address before: 14 / F, Hong Kong tower, 8 Hennessy Road, Wanchai, Hong Kong, China

Applicant before: XC5 Hong Kong Ltd.

Applicant before: Stalemate software (Shenzhen) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230421

Address after: LB505, Building 1, Shenye Shangcheng (South District) Commercial Complex Building, No. 5001 Huanggang Road, Lianhua Yicun Community, Huafu Street, Futian District, Shenzhen City, Guangdong Province, 518000, self-made 05B002

Applicant after: Jianshi Technology (Shenzhen) Co.,Ltd.

Address before: Room 1405, 135 Wenham East Street Commercial Centre, 135 Wenham East Street, Sheung Wan, Hong Kong, China

Applicant before: XC5 Hong Kong Ltd.

Applicant before: Jianshi Technology (Shenzhen) Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230524

Address after: B1301, Lenovo Houhai Center, 3288 Houhaibin Road, Haizhu Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province, 518000

Applicant after: Shenzhen Zhishi Network Technology Co.,Ltd.

Address before: LB505, Building 1, Shenye Shangcheng (South District) Commercial Complex Building, No. 5001 Huanggang Road, Lianhua Yicun Community, Huafu Street, Futian District, Shenzhen City, Guangdong Province, 518000, self-made 05B002

Applicant before: Jianshi Technology (Shenzhen) Co.,Ltd.