CN102279799B - 基于路径包含处理方法的源代码静态分析方法及其装置 - Google Patents
基于路径包含处理方法的源代码静态分析方法及其装置 Download PDFInfo
- Publication number
- CN102279799B CN102279799B CN201110256021.6A CN201110256021A CN102279799B CN 102279799 B CN102279799 B CN 102279799B CN 201110256021 A CN201110256021 A CN 201110256021A CN 102279799 B CN102279799 B CN 102279799B
- Authority
- CN
- China
- Prior art keywords
- path
- source code
- constant
- variable
- module
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于路径包含处理方法的源代码静态分析方法及其装置;所述处理方法包括:当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件;采用该源代码文件替代该包含路径。本发明使源代码静态分析器能处理包含路径中存在变量的情况。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种基于路径包含处理方法的源代码静态分析方法及其装置。
背景技术
随着软件工程的规模越来越大,源码文件越来越多,源代码文件间的调用关系也是日趋复杂。单纯依靠编译器不足以发现代码中存在的所有问题,越来越多的开发者使用源代码静态分析器工具作为编译器的有效补充来发现和解决程序中可能存在的问题,如语义错误、安全缺陷等。图1显示了源代码静态分析器的常规框图。由源代码开发人员或测试人员将源代码输入源代码静态分析器中,首先由源代码解析模块进行处理,它将源代码转换为精简的中间代码交给缺陷分析模块,缺陷分析模块对中间代码进行分析并将分析数据——如语义分析、数据流分析等提交给结果输出模块,结果输出模块使用分析数据并结合缺陷规则库中定义的缺陷生成结果文件。
目前,针对程序源代码进行静态分析的技术和工具很多,但绝大多数都集中于传统开发语言,如C、C++、Java等。这种语言的特点是静态性、编译性较好,而当前比较流行的脚本语言,如PHP(Hypertext Preprocessor,超级文本预处理语言),通常具有动态性和解释性特点。
下文所示为Java代码中静态路径包含的例子:
improt cn.com.myproject.MyClass;
public MySubClass extends MyClass{
public myMethod(){
……
}
}
该Java文件中如果需要使用其它文件中的类,如果该类不与当前类在同一包package中,必须通过import关键字明确指定,如上面例子中第1行的improt cn.com.myproject.MyClass,当源代码静态分析器中的解析模块碰到这样一条语句时,会到相应的路径“$CLASSPATH/cn/com/myproject”下去查找对应的MyClass.java文件。
下文所示为 PHP代码中包含变量的路径包含的例子:
<? php
$path = ‘./config’;
$configFile = ‘myConfig’;
include “$path/$configFile”;
……
echo myConfigParam;
?>
在PHP语言中,允许包含路径中含有变量,可称之为动态路径包含或非常量路径包含,include “$path/$configFile”,这种情况通常出于部署和运行的灵活性需要。如果无法进行精确的变量分析的话,很难定位需要包含引用的PHP源文件,而找不到源文件,源代码静态分析器就不会发挥其作用。因此已知的静态分析器遇到这种情况,处理办法通常趋于两种极端,一种是直接丢弃该包含文件,即鸵鸟策略,另外一种报告程序中存在动态包含缺陷。这两种处理办法都会导致大量的误报和漏报。
发明内容
本发明要解决的技术问题是提供如何使源代码静态分析器能处理包含路径中存在变量的情况。
为了解决上述问题,本发明提供了一种路径包含的处理方法,包括:
当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;
当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件;
采用该源代码文件替代该包含路径。
进一步地,所述判断包含路径中的变量是否具有常量值的步骤包括:
对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;
如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;
如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本发明还提供了一种路径包含的处理装置,包括:
判断模块,用于当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;
查找模块,用于当所述判断模块判断包含路径中的变量具有常量值时,找到该包含路径对应的源代码文件;
处理模块,用于采用该源代码文件替代该包含路径。
进一步地,所述判断模块判断包含路径中的变量是否具有常量值是指:
所述判断模块对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本发明还提供了一种基于路径包含处理方法的源代码静态分析器,包括:
源码解析模块,用于根据输入的源代码文件产生中间代码;
缺陷分析模块,用于根据所接收的中间代码得到分析数据;
结果输出模块,用于根据所述分析数据及预定的缺陷规则生成缺陷分析结果;
还包括:常量分析模块;
所述源码解析模块还用于在所述中间代码中查找包含路径,如果不存在包含路径则将中间代码发送给所述缺陷分析模块;当查找到为非常量的包含路径时将该包含路径发送给所述常量分析模块,接收到常量分析模块返回的包含路径对应的源代码文件后,采用该源代码文件替代对应的包含路径;替代后继续在所述中间代码中查找包含路径;
所述常量分析模块用于判断所接收到的包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件,并将其返回给所述源码解析模块。
进一步地,所述源码解析模块包括:
控制单元、发送单元;
转换单元,用于根据输入的源代码文件产生中间代码;
判断单元,用于在所述中间代码中查找包含路径,查找到一条后判断所找到的包含路径是否为常量,如果为常量则找到该常量对应的源代码文件,并发送给所述控制单元;如果为非常量则将该包含路径发送给所述常量分析模块;如果查找不出包含路径,则指示所述发送单元将中间代码发送给所述缺陷分析模块;
所述控制单元用于当接收到所述常量分析模块或判断单元发送的源代码文件后,采用该源代码文件替代所述判断单元所查找到的包含路径;替代后指示所述判断单元继续查找包含路径。
进一步地,所述常量分析模块判断所接收到的包含路径中的变量是否具有常量值是指:
所述常量分析模块对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本发明还提供了一种基于路径包含处理方法的源代码静态分析方法,包括:
A、根据输入的源代码文件产生中间代码;
B、在所述中间代码中查找包含路径,如果不存在包含路径则进行步骤E;当查找到为非常量的包含路径时进行步骤C;
C、判断该包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件;
D、采用该源代码文件替代对应的包含路径;替代后返回步骤B;
E、根据所述中间代码得到分析数据;根据所述分析数据及预定的缺陷规则生成缺陷分析结果。
进一步地,所述步骤B包括:
B1、在所述中间代码中查找包含路径,查找到一条后判断所找到的包含路径是否为常量,如果为常量则进行步骤B2;如果为非常量则进行步骤C;如果查找不出包含路径,则进行步骤E;
B2、找到该包含路径对应的源代码文件;进行步骤D;
所述步骤D中替代后返回步骤B1。
进一步地,所述步骤C包括:
对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;
如果求解结果为确定的值,则判断该包含路径中的变量具有常量值,找到该包含路径对应的源代码文件;
如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本发明的技术方案解决了当前源代码静态分析器中无法处理包含路径中存在变量的情况;提高了当前源代码静态分析器的检测精度。
附图说明
当结合附图参考一下详细描述时,可以更容易且更好的领会和理解本发明的各实施例,附图中:
图1是现有的源代码静态分析器的示意框图;
图2是实施例一的基于路径包含处理方法的源代码静态分析器的示意框图;
图3是实施例一的基于路径包含处理方法的源代码静态分析器的工作流程示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
实施例一、一种基于路径包含处理方法的源代码静态分析器,如图2所示,包括:
缺陷分析模块、常量分析模块;
源码解析模块,用于根据输入的源代码文件产生中间代码;在所述中间代码中查找包含路径,如果不存在包含路径则将中间代码发送给所述缺陷分析模块;当查找到为非常量的包含路径时将该包含路径发送给所述常量分析模块,接收到常量分析模块返回的包含路径对应的源代码文件后,采用该源代码文件替代对应的包含路径;替代后继续在所述中间代码中查找包含路径;
所述常量分析模块用于判断所接收到的包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件,并将其返回给所述源码解析模块;
所述缺陷分析模块用于根据所接收的中间代码得到分析数据;
结果输出模块,用于根据所述分析数据及预定的缺陷规则生成缺陷分析结果。
本实施例中,所述缺陷分析模块和结果输出模块可以但不限采用和现有技术相同的方案实现;其中预定的缺陷规则可以但不限于保存为缺陷规则库,可以保存在结果输出模块中,也可以保存在其它模块中。
本实施例中,所述源码解析模块还可以用于当所述中间代码中存在包含路径且为常量时,找到该包含路径对应的源代码文件。
本实施例中,常量分析模块与源码解析模块进行交互,尽可能的确定包含路径下的变量的常量值,进一步确定被包含的源代码文件,并提交给源码解析模块进行处理。
本实施例中,源码解析模块与静态分析模块合作的流程 如图3所示:
首先,将源代码文件输入源码解析模块,产生当前源代码文件的中间代码。
其次,检查中间代码中是否存在包含路径语句,如果不存在则进入源代码静态分析器的后续模块。
如果存在包含路径,则进一步判断包含路径是否是常量。如果是常量则按照常规静态包含处理,即根据该常量找到对应源代码文件,并将其输入源码解析模块中。
如果是非常量,则使用常量分析模块进行包含路径中变量的常量分析,经过分析后有两种可能,一种是包含路径中变量具有常量值,则按照常规静态包含处理,另一种包含路径中变量不具有常量值,则丢弃该路径。
静态包含处理完成后继续检查生成的中间代码中是否还有包含路径。
虽然在图3中示出了流程顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该过程可能反复进行多次,取决于被包含的代码中是否仍然有需要分析的路径,直到所有可解析的包含路径内的文件都被源码解析模块处理为止。之后的处理流程可以与典型的源代码静态分析器流程一致,如前所述。
本实施例中,所述源码解析模块具体可以包括:控制单元、发送单元;
转换单元,用于根据输入的源代码文件产生中间代码;
判断单元,用于在所述中间代码中查找包含路径,查找到一条后判断所找到的包含路径是否为常量,如果为常量则找到该常量对应的源代码文件,并发送给所述控制单元;如果为非常量则将该包含路径发送给所述常量分析模块;如果查找不出包含路径,则指示所述发送单元将中间代码发送给所述缺陷分析模块;
控制单元,用于当接收到所述常量分析模块或判断单元发送的源代码文件后,采用该源代码文件替代所述判断单元所查找到的包含路径;替代后指示所述判断单元继续查找包含路径。
本实施例中,所述常量分析模块还可以用于当包含路径中的变量不具有常量值时丢弃该包含路径并通知所述控制单元;
所述控制单元当收到所述常量分析模块的通知后指示所述判断单元继续查找包含路径。
本实施例中,所述常量分析模块可以但不限于使用数据流分析方法来进行常量分析,确认每个程序点是否包含常量以及常量内容。本实施例中,所述常量分析模块对包含路径建立常量传播方程,然后通过迭代计算反复求解,直到到达不动点。此时包含路径中的变量如果具有常量值,则该变量对应的常量以及常量内容都已经分析出来,常量分析模块使用该求解结果可以很容易的判断出当前非常量包含路径中的变量是否存在常量值,如果求解结果为确定的值,则判断包含路径中的变量具有常量值,如果求解结果为不确定的值,则判断包含路径中的变量不具有常量值。
绝大多数情况下,包含路径中的变量的值都可以在代码实际运行前确定下来,而不会导致所谓动态包含漏洞;而程序中包含路径中添加变量的主要目的在于编译和部署的灵活性。本实施例在解析源代码的过程中进一步分析包含路径中存在的变量的值,如果该变量存在一个或一组确定的值,源代码静态分析器就可以根据该值来包含对于路径下的源代码文件,从而使得源代码静态分析器的分析范围得到扩大。
实施例二、一种基于路径包含处理方法的源代码静态分析方法,包括:
A、根据输入的源代码文件产生中间代码;
B、在所述中间代码中查找包含路径,如果不存在包含路径则进行步骤E;当查找到为非常量的包含路径时进行步骤C;
C、判断该包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件;
D、采用该源代码文件替代对应的包含路径;替代后返回步骤B;
E、根据所述中间代码得到分析数据;根据所述分析数据及预定的缺陷规则生成缺陷分析结果。
本实施例中,所述步骤A、E可以但不限采用和现有技术相同的方案实现。
本实施例中,所述步骤B还可以包括:
当所述中间代码中存在包含路径且为常量时,找到该包含路径对应的源代码文件,进行步骤D。
本实施例中,所述步骤B具体可以包括:
B1、在所述中间代码中查找包含路径,查找到一条后判断所找到的包含路径是否为常量,如果为常量则进行步骤B2;如果为非常量则进行步骤C;如果查找不出包含路径,则进行步骤E;
B2、找到该包含路径对应的源代码文件;进行步骤D;
所述步骤D中替代后返回步骤B1。
本实施例中,所述步骤C具体可以包括:
对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;
如果求解结果为确定的值,则判断该包含路径中的变量具有常量值,找到该包含路径对应的源代码文件;
如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本实施例中,所述步骤C还可以包括:
当判断该包含路径中的变量不具有常量值时丢弃该包含路径并返回步骤B1。
实施例三、一种路径包含的处理方法,包括:
当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;
当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件;
采用该源代码文件替代该包含路径。
本实施例中,所述方法还可以包括:
当包含路径中的变量不具有常量值时丢弃该包含路径。
本实施例中,所述判断包含路径中的变量是否具有常量值的步骤具体可以包括:
对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;
如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;
如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本实施例当运行在源代码静态分析器中时,各步骤可以均由新增的模块完成,也可以均通过改进源码解析模块完成,还可以部分通过改进源码解析模块完成,部分由新增模块完成。
实施例四、一种路径包含的处理装置,包括:
判断模块,用于当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;
查找模块,用于当所述判断模块判断包含路径中的变量具有常量值时,找到该包含路径对应的源代码文件;
处理模块,用于采用该源代码文件替代该包含路径。
所述判断模块判断包含路径中的变量是否具有常量值是指:
本实施例中,所述判断模块判断包含路径中的变量是否具有常量值的步骤具体可以是指:
所述判断模块对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
本实施例中,所述判断模块还可以用于当判断包含路径中的变量不具有常量值时,丢弃该包含路径。
本实施例可以在源代码静态分析器的基础上实现,其中各模块可以均由新增的模块实现,也可以均通过改进源码解析模块实现,还可以部分模块通过改进源码解析模块实现,部分模块由新增模块实现。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (8)
1.一种路径包含的处理方法,包括:
当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;
当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件;
采用该源代码文件替代该包含路径;
其中,所述判断包含路径中的变量是否具有常量值的步骤包括:
对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;
如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;
如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
2.一种路径包含的处理装置,包括:
判断模块,用于当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;
查找模块,用于当所述判断模块判断包含路径中的变量具有常量值时,找到该包含路径对应的源代码文件;
处理模块,用于采用该源代码文件替代该包含路径;
其中,所述判断模块判断包含路径中的变量是否具有常量值是指:
所述判断模块对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
3.一种基于路径包含处理方法的源代码静态分析器,包括:
源码解析模块,用于根据输入的源代码文件产生中间代码;
缺陷分析模块,用于根据所接收的中间代码得到分析数据;
结果输出模块,用于根据所述分析数据及预定的缺陷规则生成缺陷分析结果;
其特征在于,还包括:常量分析模块;
所述源码解析模块还用于在所述中间代码中查找包含路径,如果不存在包含路径则将中间代码发送给所述缺陷分析模块;当查找到为非常量的包含路径时将该包含路径发送给所述常量分析模块,接收到常量分析模块返回的包含路径对应的源代码文件后,采用该源代码文件替代对应的包含路径;替代后继续在所述中间代码中查找包含路径;
所述常量分析模块用于判断所接收到的包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件,并将其返回给所述源码解析模块。
4.如权利要求3所述的源代码静态分析器,其特征在于,所述源码解析模块包括:
控制单元、发送单元;
转换单元,用于根据输入的源代码文件产生中间代码;
判断单元,用于在所述中间代码中查找包含路径,查找到一条后判断所找到的包含路径是否为常量,如果为常量则找到该常量对应的源代码文件,并发送给所述控制单元;如果为非常量则将该包含路径发送给所述常量分析模块;如果查找不出包含路径,则指示所述发送单元将中间代码发送给所述缺陷分析模块;
所述控制单元用于当接收到所述常量分析模块或判断单元发送的源代码文件后,采用该源代码文件替代所述判断单元所查找到的包含路径;替代后指示所述判断单元继续查找包含路径。
5.如权利要求3或4所述的源代码静态分析器,其特征在于,所述常量分析模块判断所接收到的包含路径中的变量是否具有常量值是指:
所述常量分析模块对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
6.一种基于路径包含处理方法的源代码静态分析方法,包括:
A、根据输入的源代码文件产生中间代码;
B、在所述中间代码中查找包含路径,如果不存在包含路径则进行步骤E;当查找到为非常量的包含路径时进行步骤C;
C、判断该包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件;
D、采用该源代码文件替代对应的包含路径;替代后返回步骤B;
E、根据所述中间代码得到分析数据;根据所述分析数据及预定的缺陷规则生成缺陷分析结果。
7.如权利要求6所述的方法,其特征在于,所述步骤B包括:
B1、在所述中间代码中查找包含路径,查找到一条后判断所找到的包含路径是否为常量,如果为常量则进行步骤B2;如果为非常量则进行步骤C;如果查找不出包含路径,则进行步骤E;
B2、找到该包含路径对应的源代码文件;进行步骤D;
所述步骤D中替代后返回步骤B1。
8.如权利要求6或7所述的方法,其特征在于,所述步骤C包括:
对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;
如果求解结果为确定的值,则判断该包含路径中的变量具有常量值,找到该包含路径对应的源代码文件;
如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110256021.6A CN102279799B (zh) | 2011-08-31 | 2011-08-31 | 基于路径包含处理方法的源代码静态分析方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110256021.6A CN102279799B (zh) | 2011-08-31 | 2011-08-31 | 基于路径包含处理方法的源代码静态分析方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102279799A CN102279799A (zh) | 2011-12-14 |
CN102279799B true CN102279799B (zh) | 2014-03-12 |
Family
ID=45105259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110256021.6A Active CN102279799B (zh) | 2011-08-31 | 2011-08-31 | 基于路径包含处理方法的源代码静态分析方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102279799B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049377B (zh) * | 2012-12-14 | 2016-01-13 | 中国信息安全测评中心 | 基于路径簇归约的并行符号执行方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2261802A1 (en) * | 2009-06-10 | 2010-12-15 | ITI Scotland Limited | Automated debugging system and method |
CN102073587A (zh) * | 2010-12-27 | 2011-05-25 | 北京邮电大学 | 一种程序中不可达路径的静态检测方法 |
CN102073825A (zh) * | 2011-01-28 | 2011-05-25 | 李清宝 | 基于路径驱动的可执行程序安全性检测方法及系统 |
-
2011
- 2011-08-31 CN CN201110256021.6A patent/CN102279799B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2261802A1 (en) * | 2009-06-10 | 2010-12-15 | ITI Scotland Limited | Automated debugging system and method |
CN102073587A (zh) * | 2010-12-27 | 2011-05-25 | 北京邮电大学 | 一种程序中不可达路径的静态检测方法 |
CN102073825A (zh) * | 2011-01-28 | 2011-05-25 | 李清宝 | 基于路径驱动的可执行程序安全性检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102279799A (zh) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ispoglou et al. | {FuzzGen}: Automatic fuzzer generation | |
Schäfer et al. | An empirical evaluation of using large language models for automated unit test generation | |
US11126930B2 (en) | Code completion for dynamically-typed programming languages using machine learning | |
CN103577324B (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
CN104899147B (zh) | 一种面向安全检查的代码静态分析方法 | |
US8799864B2 (en) | Providing SystemVerilog testing harness for a standardized testing language | |
US9122540B2 (en) | Transformation of computer programs and eliminating errors | |
Falke et al. | The bounded model checker LLBMC | |
CN101833500A (zh) | 一种基于Agent的嵌入式软件智能测试方法 | |
CN102567200A (zh) | 基于函数调用图的并行化安全漏洞检测方法 | |
CN105893254A (zh) | 测试用例导入方法及装置 | |
CN109857641A (zh) | 对程序源文件进行缺陷检测的方法及装置 | |
CN105468508B (zh) | 代码检测方法及装置 | |
CN111694746A (zh) | 面向编译型语言AS3的Flash缺陷模糊测评工具 | |
Rohatgi et al. | An approach for mapping features to code based on static and dynamic analysis | |
CN106547520A (zh) | 一种代码路径分析方法及装置 | |
CN105512021A (zh) | 用于软件测试的Diff分析方法及装置 | |
Ancona et al. | Towards runtime monitoring of node. js and its application to the internet of things | |
Przigoda et al. | Verifying the structure and behavior in UML/OCL models using satisfiability solvers | |
CN114911711A (zh) | 一种代码缺陷分析方法、装置、电子设备及存储介质 | |
CN106557412A (zh) | 一种模糊测试的方法及装置 | |
Berabi et al. | Deepcode AI fix: Fixing security vulnerabilities with large language models | |
Ding et al. | Detection of infeasible paths: Approaches and challenges | |
CN102279799B (zh) | 基于路径包含处理方法的源代码静态分析方法及其装置 | |
Ortin et al. | Cnerator: A Python application for the controlled stochastic generation of standard C source code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |