CN101937388A - 一种高可扩展性和可维护性的源代码缺陷检测方法及装置 - Google Patents

一种高可扩展性和可维护性的源代码缺陷检测方法及装置 Download PDF

Info

Publication number
CN101937388A
CN101937388A CN2009102592510A CN200910259251A CN101937388A CN 101937388 A CN101937388 A CN 101937388A CN 2009102592510 A CN2009102592510 A CN 2009102592510A CN 200910259251 A CN200910259251 A CN 200910259251A CN 101937388 A CN101937388 A CN 101937388A
Authority
CN
China
Prior art keywords
source code
executing state
analysis
statement
state
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
CN2009102592510A
Other languages
English (en)
Other versions
CN101937388B (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.)
Zhang Yan
Original Assignee
BEIJING CODETEST 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 CODETEST INFORMATION TECHNOLOGY Co Ltd filed Critical BEIJING CODETEST INFORMATION TECHNOLOGY Co Ltd
Priority to CN 200910259251 priority Critical patent/CN101937388B/zh
Publication of CN101937388A publication Critical patent/CN101937388A/zh
Application granted granted Critical
Publication of CN101937388B publication Critical patent/CN101937388B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种高可扩展性和可维护性的源代码缺陷检测方法及装置,包括下列步骤:(1)将用户配置好的需要进行检测的源代码转化成抽象语法树以及控制流图,送入分析引擎;(2)根据抽象语法树以及控制流图,对源代码进行流不敏感的分析,把分析结果提交给缺陷报告模块,然后进入步骤3,进行路径敏感的分析;(3)根据抽象语法树以及控制流图对源代码进行各种路径敏感的建模和分析,生成缺陷原始信息;(4)根据缺陷原始信息,对缺陷路径进行还原、精简、报告给用户。装置包括三个功能模块:编译器前端、分析引擎、缺陷报告模块。本发明的目的提供了一种源代码缺陷检测方法及装置具有高度的可扩展性、可维护性强和模块化等特点。

Description

一种高可扩展性和可维护性的源代码缺陷检测方法及装置
技术领域
本发明涉及一种在软件源代码中检测缺陷的技术,属于计算机信息安全技术领域。
背景技术
源代码缺陷检测工具是相当复杂的软件系统,其复杂度不亚于一个产品级的C/C++编译器。在大型软件系统中,系统架构的设计直接决定系统的质量和可持续开发能力。现有的一些开源检测工具,我们发现多数工具都将语法处理,检测,和错误报告等功能混合在一起。这样的一体化结构虽然在开发时难度较低,但可扩展性和可维护性都不好。建立执行状态图时,相关检测工具都会遇到状态过多导致存储爆炸的问题,此问题是相关的检测工具共同遇到的问题。
发明内容
本发明的目的提供了一种源代码缺陷检测方法及装置具有高度的可扩展性、可维护性强和模块化等特点。
为实现上述发明目的,本发明所提供的技术方案的基本构思如下:IV09-175
本发明提供一种高可扩展性和可维护性的源代码缺陷检测方法,其特殊之处在于:包括下列操作步骤:
(1)将用户配置好的需要进行检测的源代码转化成抽象语法树以及控制流图,送入分析引擎,该分析引擎开始工作;
(2)根据抽象语法树以及控制流图,对源代码进行流不敏感的分析,把分析结果提交给缺陷报告模块,然后进入步骤3,进行路径敏感的分析;
(3)根据抽象语法树以及控制流图对源代码进行各种路径敏感的建模和分析,生成缺陷原始信息;
(4)根据缺陷原始信息,对缺陷路径进行还原、精简、报告给用户。
所述步骤(3)对源代码进行各种路径敏感的建模和分析由循环的工作队列算法执行,所述循环的工作队列算法由控制要素控制。
所述工作队列算法的操作如下:(31)根据不同的语句类别,调用传输函数中相应的访问函数对语句进行处理和求值;(32)处理分支语句:判断当前分支上的约束条件是否可以满足,如果可满足则执行当前分支,如果不可满足则不执行当前分支;处理赋值语句:更新赋值语句中被赋值变量的值;处理函数调用语句语句:计算被调用函数的副作用和返回值;(33)对每一个执行状态用hash算法计算该执行状态的hash值,hash值对每一个不同的执行状态都是唯一的;如果一个执行状态的hash值跟已有的执行状态的hash值相等,则表明该执行状态是一个重复出现的状态,则不再存储状态,如果hash值不相等,则顺序执行后续操作;(34)存储所有的执行状态;(35)对存储的执行状态进行建模;(36)对执行状态进行各种检测,生成缺陷原始信息。
所述控制要素包括:根据抽象语法树以及控制流图对源代码建立所有执行路径的执行状态图,并驱动检测器对执行状态图进行遍历;对源程序的每个分支进行遍历;控制源程序的循环语句的循环执行的最大次数;
所述执行状态图为一个基于函数控制流图的程序执行图,记录函数每条可能执行路径上的执行情况。
所述步骤(33)一个执行状态包括:所有已求值的表达式的值,所有变量和动态分配的内存块的值,所有符号的相关约束信息,所有检查器所需要的信息。
所述步骤(36)中各种检测的内容包括:变量的值是否有定义,除数是否为0,被解引用的指针是否为空,整数运算是否溢出,数组下标是否越界,指针算术是否合法;在路径结束时还要检测:动态分配的内存是否有泄漏,获得的锁是否释放。
一种高可扩展性和可维护性的源代码缺陷检测装置,其特殊之处在于:所述源代码缺陷检测器包括有下述三个功能模块:
编译器前端,负责将程序源代码转化成抽象语法树以及控制流图,然后送入分析引擎,为后续分析提供便利;
分析引擎,由分别完成各自功能的六个子功能模块:执行引擎、状态管理器、存储管理器、约束管理器、检测器及传输函数组成,对源代码进行各种建模和分析,生成缺陷的原始信息;
缺陷报告模块,根据缺陷原始信息,对缺陷路径进行还原,精简,报告给用户。
所述分析引擎中六个子模块的功能是:
执行引擎,对程序进行各种分析,根据需求调用相应的其它五个子模块完成相应的功能;
状态管理器,存储和管理所有的执行状态。
存储管理器,负责对程序的存储状态进行建模,
约束管理器,负责存储和求解程序路径中出现的各种约束条件。
检测器,对执行状态进行各种检测,生成缺陷原始信息。
传输函数,对程序中的各种语句进行处理和求值,传播执行状态。
所述执行引擎对程序进行各种分析包括:对源代码建立所有执行路径的执行状态图,并驱动检测引擎对执行状态图进行遍历;对程序的每个分支进行遍历;控制循环执行的最大次数;根据不同的语句类型,调用相应的访问函数对语句进行处理和求值;调用约束管理器判断当前分支上的约束条件是否满足;
所述状态管理器利用hash算法计算每一个执行状态的hash值,并检测执行状态的hash值是否重复;
所述存储管理器存储执行状态的信息包括:保存每一块模拟的内存块到其当前值的映射,以及每个内存块的大小,分配释放信息。
与现有的技术相比,本发明具有以下优点及有益效果:
1、本发明的源代码缺陷检测方法及装置具有高度的可扩展性、可维护性强和模块化等特点。
2、本发明的各个部分被划分为相互独立的模块。模块与模块之间的交互只通过良好定义的接口进行。这意味着可以在不改变其他模块的条件下,对某一模块进行替换,试验不同的实现。并且可以隔离bug,方便调试。
3、可扩展性好意味着可以方便的对一个模块进行功能的增加,比如利用良好的接口可以方便的增加检测器的个数。
4、在核心分析引擎中,可以进行多种不同复杂度和精确度的分析,包括从流不敏感的抽象语法树的线性遍历,到对程序路径的执行进行完整建模的符号模拟分析。
5、状态管理器在存储每一个状态前,都用hash算法计算该状态的hash值,这个值对每一个不同的状态都是唯一的。如果一个状态的hash值跟已有的状态hash值相等,则表明该状态是一个重复出现的状态,则不再次存储该状态。这样积极的检测重复状态的出现不仅能够减少存储消耗,更重要的是对状态空间进行消减,降低检测的时间消耗。
6、本发明使用计算状态hash值的方法消除重复状态,解决了建立执行状态图时遇到状态过多导致存储爆炸的问题。
7、传输函数对程序中的各种语句进行求值,传播执行状态。根据检测要求的不同,工具需要对语句进行不同的处理,有的要求对语句进行完整的模拟执行,有的则只需要粗略的模拟,有的甚至可以直接忽略。把它们放在单独的模块中,由执行引擎根据配置需求来调用,则大大提高了检测工具的灵活度。
8、将检测工具进行模块化划分,使得工具的开发变得相对简单,不易出错。增强了工具的灵活性,可以非常方便的对工具进行各种配置和调整。
附图说明
图1:是本发明中源代码缺陷检测方法的基本构架图;
图2:是本发明中分析引擎的结构示意图;
图3:是本发明中工作队列算法的操作流程图。
具体实施方式
下面结合附图,对本发明作进一步说明。
参见图1至图3:
本发明提供一种高可扩展性和可维护性的源代码缺陷检测方法,其特殊之处在于:包括下列操作步骤:
(1)将用户配置好的需要进行检测的源代码转化成抽象语法树以及控制流图,送入分析引擎,该分析引擎开始工作;
(2)根据抽象语法树以及控制流图,对源代码进行流不敏感的分析,把分析结果提交给缺陷报告模块,然后进入步骤3,进行路径敏感的分析;
(3)根据抽象语法树以及控制流图对源代码进行各种路径敏感的建模和分析,生成缺陷原始信息;
所述步骤(3)对源代码进行各种路径敏感的建模和分析由循环的工作队列算法执行,所述循环的工作队列算法由控制要素控制,所述工作队列算法的操作如下:(31)根据不同的语句类别,调用传输函数中相应的访问函数对语句进行处理和求值;(32)处理分支语句:判断当前分支上的约束条件是否可以满足,如果可满足则执行当前分支,如果不可满足则不执行当前分支;处理赋值语句:更新赋值语句中被赋值变量的值;处理函数调用语句语句:计算被调用函数的副作用和返回值;(33)对每一个执行状态用hash算法计算该执行状态的hash值,hash值对每一个不同的执行状态都是唯一的;如果一个执行状态的hash值跟已有的执行状态的hash值相等,则表明该执行状态是一个重复出现的状态,则不再存储状态,如果hash值不相等,则顺序执行后续操作;一个执行状态包括:所有已求值的表达式的值,所有变量和动态分配的内存块的值,所有符号的相关约束信息,所有检查器所需要的信息;(34)存储所有的执行状态;(35)对存储的执行状态进行建模;(36)对执行状态进行各种检测,生成缺陷原始信息;
所述控制要素包括:根据抽象语法树以及控制流图对源代码建立所有执行路径的执行状态图,并驱动检测器对执行状态图进行遍历;执行状态图为一个基于函数控制流图的程序执行图,记录函数每条可能执行路径上的执行情况;对源程序的每个分支进行遍历;控制源程序的循环语句的循环执行的最大次数;
(4)根据缺陷原始信息,对缺陷路径进行还原、精简、报告给用户。
所述步骤(36)中各种检测的内容包括:变量的值是否有定义,除数是否为0,被解引用的指针是否为空,整数运算是否溢出,数组下标是否越界,指针算术是否合法;在路径结束时还要检测:动态分配的内存是否有泄漏,获得的锁是否释放。
一种高可扩展性和可维护性的源代码缺陷检测装置,将检测工具进行模块化划分,使得工具的开发变得相对简单,不易出错。增强了工具的灵活性,可以非常方便的对工具进行各种配置和调整,包括有下述三个功能模块:
编译器前端,负责将程序源代码转化成抽象语法树以及控制流图,然后送入分析引擎,为后续分析提供便利。
缺陷报告模块,根据缺陷原始信息,对缺陷路径进行还原,精简,报告给用户。所述缺陷原始信息往往只是一个数据结构,其中包含缺陷在源代码中的位置,缺陷的类别,缺陷的触发路径和状态信息,缺陷报告模块需要根据这些信息,将缺陷在源程序的代码中显示出来,并提供相关用户。
分析引擎,对源代码进行各种建模和分析,生成缺陷的原始信息;所述执行引擎对程序进行各种分析包括:对源代码建立所有执行路径的执行状态图,并驱动检测引擎对执行状态图进行遍历;对程序的每个分支进行遍历;控制循环执行的最大次数;根据不同的语句类型,调用相应的访问函数对语句进行处理和求值;调用约束管理器判断当前分支上的约束条件是否满足。
分析引擎由分别完成各自功能的六个子功能模块组成:
执行引擎其功能是:对源程序进行各种分析,根据需求调用相应的其它五个子模块完成相应的功能。
状态管理器其功能是:存储和管理所有的执行状态,存储执行状态的信息包括:保存每一块模拟的内存块到其当前值的映射,以及每个内存块的大小,分配释放信息,利用hash算法计算每一个执行状态的hash值,并检测执行状态的hash值是否重复;具体的说状态管理器在存储每一个状态前,都用hash算法计算该状态的hash值,这个值对每一个不同的状态都是唯一的。如果一个状态的hash值跟已有的状态hash值相等,则表明该状态是一个重复出现的状态,则不再次存储该状态。这样积极的检测重复状态的出现不仅能够减少存储消耗,更重要的是对状态空间进行消减,降低检测的时间消耗。
存储管理器其功能是:负责对程序的存储状态进行建模;约束管理器其功能是:负责存储和求解程序路径中出现的各种约束条件;检测器其功能是:对执行状态进行各种检测,生成缺陷原始信息。
传输函数其功能是:对程序中的各种语句进行处理和求值,传播执行状态;在核心分析引擎中,可以进行多种不同复杂度和精确度的分析,包括从流不敏感的抽象语法树的线性遍历,到对程序路径的执行进行完整建模的符号模拟分析;传输函数根据检测要求的不同,工具需要对语句进行不同的处理,有的要求对语句进行完整的模拟执行,有的则只需要粗略的模拟,有的甚至可以直接忽略。把它们放在单独的模块中,由执行引擎根据配置需求来调用,则大大提高了检测工具的灵活度。
分析引擎各个部分被划分为相互独立的模块,模块与模块之间的交互只通过良好定义的接口进行,这意味着可以在不改变其他模块的条件下,对某一模块进行替换;可以方便的对一个模块进行功能的增加,比如利用良好的接口可以方便的增加检测器的个数。
所述源代码缺陷检测器能够检测出来的软件缺陷包括以下类型:
返回堆栈地址、返回未定义的变量、使用未定义的值作为分支判定条件、向未定义的地址赋值、使用未定义的值作为函数参数、使用NULL指针作为指定了nonnull属性的函数参数、解引用未定义的指针、解引用NULL指针、通过未定义或为NULL的函数指针调用函数、声明长度可能为0的可变长度数组、使用值为0的表达式作为除数、非法的指针算术、内存泄漏、数组下标越界、非法字符串操作。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种高可扩展性和可维护性的源代码缺陷检测方法,其特征在于:包括下列操作步骤:
(1)将用户配置好的需要进行检测的源代码转化成抽象语法树以及控制流图,送入分析引擎,该分析引擎开始工作;
(2)根据抽象语法树以及控制流图,对源代码进行流不敏感的分析,把分析结果提交给缺陷报告模块,然后进入步骤3,进行路径敏感的分析;
(3)根据抽象语法树以及控制流图对源代码进行各种路径敏感的建模和分析,生成缺陷原始信息;
(4)根据缺陷原始信息,对缺陷路径进行还原、精简、报告给用户。
2.根据权利要求1所述的源代码缺陷检测方法,其特征在于,所述步骤(3)对源代码进行各种路径敏感的建模和分析由循环的工作队列算法执行,所述循环的工作队列算法由控制要素控制。
3.根据权利要求2所述的源代码缺陷检测方法,其特征在于,所述工作队列算法的操作如下:
(31)根据不同的语句类别,调用传输函数中相应的访问函数对语句进行处理和求值;
(32)处理分支语句:判断当前分支上的约束条件是否可以满足,如果可满足则执行当前分支,如果不可满足则不执行当前分支;
处理赋值语句:更新赋值语句中被赋值变量的值;
处理函数调用语句语句:计算被调用函数的副作用和返回值;
(33)对每一个执行状态用hash算法计算该执行状态的hash值,hash值对每一个不同的执行状态都是唯一的;如果一个执行状态的hash值跟已有的执行状态的hash值相等,则表明该执行状态是一个重复出现的状态,则不再存储状态,如果hash值不相等,则顺序执行后续操作;
(34)存储所有的执行状态;
(35)对存储的执行状态进行建模;
(36)对执行状态进行各种检测,生成缺陷原始信息。
4.根据权利要求2所述的源代码缺陷检测方法,其特征在于,所述控制要素包括:
根据抽象语法树以及控制流图对源代码建立所有执行路径的执行状态图,并驱动检测器对执行状态图进行遍历;
对源程序的每个分支进行遍历;
控制源程序的循环语句的循环执行的最大次数;
5.根据权利要求4所述的源代码缺陷检测方法,其特征在于,所述执行状态图为一个基于函数控制流图的程序执行图,记录函数每条可能执行路径上的执行情况。
6.根据权利要求3所述的源代码缺陷检测方法,其特征在于,所述步骤(33)一个执行状态包括:所有已求值的表达式的值,所有变量和动态分配的内存块的值,所有符号的相关约束信息,所有检查器所需要的信息。
7.根据权利要求3所述的源代码缺陷检测方法,其特征在于,所述步骤(36)中各种检测的内容包括:变量的值是否有定义,除数是否为0,被解引用的指针是否为空,整数运算是否溢出,数组下标是否越界,指针算术是否合法;在路径结束时还要检测:动态分配的内存是否有泄漏,获得的锁是否释放。
8.一种高可扩展性和可维护性的源代码缺陷检测装置,其特征在于:所述源代码缺陷检测装置包括有下述三个功能模块:
编译器前端,负责将程序源代码转化成抽象语法树以及控制流图,然后送入分析引擎,为后续分析提供便利;
分析引擎,由分别完成各自功能的六个子功能模块:执行引擎、状态管理器、存储管理器、约束管理器、检测器及传输函数组成,对源代码进行各种建模和分析,生成缺陷的原始信息;
缺陷报告模块,根据缺陷原始信息,对缺陷路径进行还原,精简,报告给用户。
9.根据权利要求8所述的源代码缺陷检测装置,其特征在于:所述分析引擎中六个子模块的功能是:
执行引擎,对程序进行各种分析,根据需求调用相应的其它五个子模块完成相应的功能;
状态管理器,存储和管理所有的执行状态。
存储管理器,负责对程序的存储状态进行建模,
约束管理器,负责存储和求解程序路径中出现的各种约束条件。
检测器,对执行状态进行各种检测,生成缺陷原始信息。
传输函数,对程序中的各种语句进行处理和求值,传播执行状态。
10.根据权利要求9所述的源代码缺陷检测装置,其特征在于:
所述执行引擎对程序进行各种分析包括:对源代码建立所有执行路径的执行状态图,并驱动检测引擎对执行状态图进行遍历;对程序的每个分支进行遍历;控制循环执行的最大次数;根据不同的语句类型,调用相应的访问函数对语句进行处理和求值;调用约束管理器判断当前分支上的约束条件是否满足;
所述状态管理器利用hash算法计算每一个执行状态的hash值,并检测执行状态的hash值是否重复;
所述存储管理器存储执行状态的信息包括:保存每一块模拟的内存块到其当前值的映射,以及每个内存块的大小,分配释放信息。
CN 200910259251 2009-12-17 2009-12-17 一种高可扩展性和可维护性的源代码缺陷检测方法及装置 Expired - Fee Related CN101937388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910259251 CN101937388B (zh) 2009-12-17 2009-12-17 一种高可扩展性和可维护性的源代码缺陷检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910259251 CN101937388B (zh) 2009-12-17 2009-12-17 一种高可扩展性和可维护性的源代码缺陷检测方法及装置

Publications (2)

Publication Number Publication Date
CN101937388A true CN101937388A (zh) 2011-01-05
CN101937388B CN101937388B (zh) 2013-03-13

Family

ID=43390728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910259251 Expired - Fee Related CN101937388B (zh) 2009-12-17 2009-12-17 一种高可扩展性和可维护性的源代码缺陷检测方法及装置

Country Status (1)

Country Link
CN (1) CN101937388B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156832A (zh) * 2011-03-25 2011-08-17 天津大学 一种Firefox扩展的安全缺陷检测方法
CN102799524A (zh) * 2012-07-03 2012-11-28 天津大学 一种浏览器扩展的缺陷检测方法
CN103336739A (zh) * 2013-06-09 2013-10-02 中国联合网络通信集团有限公司 软件测试方法及平台
CN103577324A (zh) * 2013-10-30 2014-02-12 北京邮电大学 移动应用中隐私信息泄露的静态检测方法
CN103927473A (zh) * 2013-01-16 2014-07-16 广东电网公司信息中心 检测移动智能终端的源代码安全的方法、装置及系统
CN104657267A (zh) * 2015-02-10 2015-05-27 上海创景计算机系统有限公司 弹性的源代码语法树解析系统及方法
CN106445804A (zh) * 2016-08-24 2017-02-22 北京奇虎测腾安全技术有限公司 一种基于序列化中间表示的源代码云检测系统及方法
CN106997320A (zh) * 2016-01-22 2017-08-01 阿里巴巴集团控股有限公司 代码评审过程中的代码显示方法和装置
CN108170435A (zh) * 2018-01-16 2018-06-15 优视科技新加坡有限公司 一种源代码转换方法、装置及设备
CN108415776A (zh) * 2018-03-06 2018-08-17 华中科技大学 一种分布式数据处理系统中的内存预估与配置优化的方法
CN108459954A (zh) * 2017-02-22 2018-08-28 腾讯科技(深圳)有限公司 应用程序漏洞检测方法和装置
CN110018828A (zh) * 2019-03-11 2019-07-16 深圳市元征科技股份有限公司 源代码检查方法、装置及终端设备
CN110221973A (zh) * 2019-05-22 2019-09-10 湖南泛联新安信息科技有限公司 面向c程序缺陷检测的靶向式并行符号执行方法
CN110674495A (zh) * 2019-09-03 2020-01-10 Xc5 香港有限公司 一种数组越界访问的检测方法、装置及设备
CN112612471A (zh) * 2020-11-19 2021-04-06 孙永杰 代码处理方法、装置、设备及存储介质
US11650907B2 (en) 2021-06-09 2023-05-16 Tata Consultancy Services Limited Systems and methods for selective path sensitive interval analysis

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984623B (zh) * 2014-04-28 2017-01-25 天津大学 一种基于缺陷检测的软件安全风险评估方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241532A (zh) * 2008-02-15 2008-08-13 北京邮电大学 面向源代码的基于不等式组求解的缓冲区溢出检测方法
CN101286132B (zh) * 2008-06-02 2010-09-08 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
CN101482847B (zh) * 2009-01-19 2011-06-29 北京邮电大学 一种基于安全漏洞缺陷模式的检测方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156832B (zh) * 2011-03-25 2012-09-05 天津大学 一种Firefox扩展的安全缺陷检测方法
CN102156832A (zh) * 2011-03-25 2011-08-17 天津大学 一种Firefox扩展的安全缺陷检测方法
CN102799524A (zh) * 2012-07-03 2012-11-28 天津大学 一种浏览器扩展的缺陷检测方法
CN103927473A (zh) * 2013-01-16 2014-07-16 广东电网公司信息中心 检测移动智能终端的源代码安全的方法、装置及系统
CN103336739A (zh) * 2013-06-09 2013-10-02 中国联合网络通信集团有限公司 软件测试方法及平台
CN103336739B (zh) * 2013-06-09 2016-01-06 中国联合网络通信集团有限公司 软件测试方法及平台
CN103577324B (zh) * 2013-10-30 2017-01-18 北京邮电大学 移动应用中隐私信息泄露的静态检测方法
CN103577324A (zh) * 2013-10-30 2014-02-12 北京邮电大学 移动应用中隐私信息泄露的静态检测方法
CN104657267A (zh) * 2015-02-10 2015-05-27 上海创景计算机系统有限公司 弹性的源代码语法树解析系统及方法
CN106997320A (zh) * 2016-01-22 2017-08-01 阿里巴巴集团控股有限公司 代码评审过程中的代码显示方法和装置
CN106445804A (zh) * 2016-08-24 2017-02-22 北京奇虎测腾安全技术有限公司 一种基于序列化中间表示的源代码云检测系统及方法
CN106445804B (zh) * 2016-08-24 2019-04-05 北京奇虎测腾安全技术有限公司 一种基于序列化中间表示的源代码云检测系统及方法
CN108459954A (zh) * 2017-02-22 2018-08-28 腾讯科技(深圳)有限公司 应用程序漏洞检测方法和装置
CN108170435A (zh) * 2018-01-16 2018-06-15 优视科技新加坡有限公司 一种源代码转换方法、装置及设备
CN108415776A (zh) * 2018-03-06 2018-08-17 华中科技大学 一种分布式数据处理系统中的内存预估与配置优化的方法
CN108415776B (zh) * 2018-03-06 2020-10-09 华中科技大学 一种分布式数据处理系统中的内存预估与配置优化的方法
CN110018828A (zh) * 2019-03-11 2019-07-16 深圳市元征科技股份有限公司 源代码检查方法、装置及终端设备
CN110018828B (zh) * 2019-03-11 2023-02-28 深圳市元征科技股份有限公司 源代码检查方法、装置及终端设备
CN110221973A (zh) * 2019-05-22 2019-09-10 湖南泛联新安信息科技有限公司 面向c程序缺陷检测的靶向式并行符号执行方法
CN110221973B (zh) * 2019-05-22 2022-12-16 湖南泛联新安信息科技有限公司 面向c程序缺陷检测的靶向式并行符号执行方法
CN110674495A (zh) * 2019-09-03 2020-01-10 Xc5 香港有限公司 一种数组越界访问的检测方法、装置及设备
CN110674495B (zh) * 2019-09-03 2021-07-09 Xc5 香港有限公司 一种数组越界访问的检测方法、装置及设备
CN112612471A (zh) * 2020-11-19 2021-04-06 孙永杰 代码处理方法、装置、设备及存储介质
US11650907B2 (en) 2021-06-09 2023-05-16 Tata Consultancy Services Limited Systems and methods for selective path sensitive interval analysis

Also Published As

Publication number Publication date
CN101937388B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
CN101937388B (zh) 一种高可扩展性和可维护性的源代码缺陷检测方法及装置
Xu et al. Finding low-utility data structures
US9612943B2 (en) Prioritization of tests of computer program code
CN100495320C (zh) 在双模式计算机处理环境下的指令集编码方法
CN102567200A (zh) 基于函数调用图的并行化安全漏洞检测方法
Weber et al. White-box performance-influence models: A profiling and learning approach
CN105808438B (zh) 一种基于函数调用路径的测试用例复用方法
CN102163143A (zh) 一种实现值关联间接跳转预测的方法
CN106293891A (zh) 多维投资指标监督方法
Wang et al. Spindle: Informed memory access monitoring
CN101710303B (zh) 基于流敏感上下文敏感指向图的内存泄漏检测方法
EP2972880B1 (en) Kernel functionality checker
CN102521126A (zh) 基于模块分解技术的软件缺陷检测系统的复杂性分析方法
Nguyen et al. Runtime checking for separation logic
Padmanabhuni et al. Predicting buffer overflow vulnerabilities through mining light-weight static code attributes
Uchida et al. Software analysis by code clones in open source software
US20120210173A1 (en) Error propagation in a system model
Kaur et al. Determination of maintainability index for object oriented systems
CN101286133A (zh) 应用区间运算的软件测试方法
CN114282227B (zh) 一种Fabric区块链系统智能合约的安全分析检测方法
Majumdar et al. Computer aided cerification
Puhan et al. Program crash analysis based on taint analysis
Zhou et al. An interval-based model for detecting software defect using alias analysis
CN104281519A (zh) 一种程序的错误检测方法及设备
Garg An approach for improving the concept of Cyclomatic Complexity for Object-Oriented Programming

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: ZHANG

Free format text: FORMER OWNER: BEIJING CODETEST INFORMATION TECHNOLOGY CO., LTD.

Effective date: 20111107

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20111107

Address after: 100085 Beijing city Haidian District Anning Zhuang three No. 9 Building 1 layer 2 5 unit 208

Applicant after: Zhang Yan

Address before: 100085 Beijing City, Haidian District road 25, 1303 small business Qinghe

Applicant before: Beijing Codetest Information Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130313

Termination date: 20171217

CF01 Termination of patent right due to non-payment of annual fee