CN107085533A - 一种指针修改影响的分析方法和系统 - Google Patents

一种指针修改影响的分析方法和系统 Download PDF

Info

Publication number
CN107085533A
CN107085533A CN201710189131.2A CN201710189131A CN107085533A CN 107085533 A CN107085533 A CN 107085533A CN 201710189131 A CN201710189131 A CN 201710189131A CN 107085533 A CN107085533 A CN 107085533A
Authority
CN
China
Prior art keywords
sentence
point
variable
node
pointer
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
CN201710189131.2A
Other languages
English (en)
Other versions
CN107085533B (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 Beida Software Engineering Ltd By Share Ltd
Original Assignee
Beijing Beida Software Engineering Ltd By Share 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 Beida Software Engineering Ltd By Share Ltd filed Critical Beijing Beida Software Engineering Ltd By Share Ltd
Priority to CN201710189131.2A priority Critical patent/CN107085533B/zh
Publication of CN107085533A publication Critical patent/CN107085533A/zh
Application granted granted Critical
Publication of CN107085533B publication Critical patent/CN107085533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F8/434Pointers; Aliasing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Machine Translation (AREA)

Abstract

本发明提供一种指针修改影响的分析方法和系统,所述方法包括:在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;基于定义点、语句以及程序入口的关系,获得对应该定义点的多个路径条件;以及判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。本发明提高结果的精度,做到了部分路径敏感以及流敏感,使采用该分析算法的静态代码缺陷检测结果更加精确。

Description

一种指针修改影响的分析方法和系统
技术领域
本发明涉及软件测试领域,更具体地,涉及指针修改影响的分析方法和系统。
背景技术
在计算机科学领域,指向分析是一种用于分析指针和内存引用所指向的变量或内存地址的静态代码分析技术。指向分析技术是很多更为复杂的代码分析技术的基础,例如编译优化、代码缺陷检测以及本文提到的指针修改影响分析。
Steensgaard算法和Andersen算法为两种公认的经典指向分析算法。Steensgaard算法效率较高,其时间复杂度几乎是线性的,但精度低;Andersen算法有较高的精度,但时间复杂度接近O(n3)。
指针修改影响分析技术能够反映程序中的由指针引起的跨函数定义使用关系,在编译优化、基于数据流的检测、增量静态语义分析等诸多领域被广泛使用。高效的指针修改分析技术在程序分析和编译领域都是十分必要的。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的指针修改影响的分析方法和系统。
根据本发明的一个方面,提供一种指针修改影响的分析方法,包括:
S1、在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;
S2、基于定义点、语句以及程序入口的关系,获得对应该定义点的多个路径条件;以及
S3、判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。
根据本发明的一个方面,还提供一种判断修改程序的指针是否造成影响的系统,包括:
初步判断模块,用于在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;
结果集合模块,在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;以及
再判断模块,判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。
本申请提出一种指针修改影响的分析方法和系统。在传统指针修改影响分析算法的基础上,利用跨函数的多个条件计算,精化获得的结果,从而提高结果的精度,做到了部分路径敏感以及流敏感,使采用该分析算法的静态代码缺陷检测结果更加精确。
附图说明
图1为现有技术中示意图;
图2为根据本发明实施例中采用本发明所述方法的示例程序一的代码示意图;
图3为根据本发明实施例中采用本发明所述方法的示例程序一的控制流图;
图4为根据本发明实施例中采用本发明所述方法的示例程序一的超图;
图5为根据本发明实施例中采用本发明所述方法的示例程序一的指向图;
图6为根据本发明实施例中采用本发明所述方法的示例程序二的代码示意图;
图7为根据本发明实施例中采用本发明所述方法的示例程序二的控制流图;
图8为根据本发明实施例中采用本发明所述方法的示例程序二的超图;
图9为根据本发明实施例中采用本发明所述方法的示例程序二的指向图;
图10为根据本发明实施例中采用本发明所述方法的示例程序三的代码示意图;
图11为根据本发明实施例中采用本发明所述方法的示例程序三的控制流图;
图12为根据本发明实施例中采用本发明所述方法的示例程序三的超图;
图13为根据本发明实施例中采用本发明所述方法的示例程序三的指向图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1示出了本发明提供的一种指针修改影响的分析方法,包括:
S1、在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;
S2、基于定义点、语句以及程序入口的关系,获得对应该定义点的多个路径条件;以及
S3、判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。
在一个实施例中,所述步骤S2包括:
从所述定义点至该语句的路径条件;
从所述定义点的程序的入口至所述定义点的路径条件;
从所述语句的程序的入口至该语句的路径条件;以及
从使不同变量产生等价关系的控制流语句的程序入口至该控制流语句的路径条件。
在一个实施例中,所述步骤S2进一步包括:所述步骤S2包括:从每一个路径条件的终点进行逆向递归搜索,获得从起点至终点间的所有路径,对具有相同路径的路径条件进行&&操作,再对不同路径的路径条件进行||操作,得到该条件;
其中,所述递归搜索在遇到起点、遇到覆盖起点的定义点或搜索到的语句没有前驱语句时停止。
对于第一条件,该条件的起点为定义点,终点为语句,对于第二条件,该条件的起点为定义点的程序的入口,终点为定义点,对于第三条件,该条件的起点为语句的程序的入口,终点为语句,对于第四条件,该条件的起点为所述控制流语句的程序入口,终点为控制流语句。
两个语句之间的条件示例:
在所述SG中,“int c=0”到“c++”的条件为“a>b”,“int c=0”到“c--”的条件为“!(a>b)”。
在一个实施例中,所述步骤S1包括:
S1.1、基于程序的控制流图CFG,分别获得静态单赋值形式的控制流图SSA_CFG和超图SG;
静态单赋值(Static Single-Assignment,SSA)是程序的一种中间表示,支持高效的数据流分析技术,每个变量名字在SSA形式的程序中只会被赋值一次。目前几乎所有的编译器,包括很多虚拟机、解释器中,都有SSA的应用。可满足性模理论(SatisfiabilityModulo Theories)用于研究布尔表达式的可满足性问题,它是对多类型阶逻辑公式进行可满足性判定的理论。常量传播(Constant Propagation)技术被应用于编译优化和代码静态分析领域当中,可将程序中能够计算出结果的变量替换为常量,用于计算程序中的控制流约束。
超图(SuperGraph)描述了程序跨函数控制流关系的有向图,可反映函数间的调用关系,也可在其中获取程序的数据流信息。
S1.2、对所述SSA_CFG进行指向分析,获得指针指向图PG,基于所述PG,获得语句中变量的等价信息;以及
S1.3、基于所述等价信息,在所述SG上进行正向数据流分析,获得指针修改产生的、初步判断为具有定义使用关系的定义点,构成分析结果集合;
其中,所述变量包括指针以及指针所指向的内存地址。
在一个实施例中,所述步骤S1.2包括对所述SSA_CFG中函数内的指向分析:
对于赋值语句a=&b,在所述PG中创建结点“a”、“&b”和“b”(若已存在则无需再创建),并使得结点“a”和“&b”均指向结点“b”,并在有向边上记录该指向产生的语句“a=&b”;
对于赋值语句“a=b;”,且a和b的类型皆为指针,则在所述PG中创建结点“a”和“b”,并使得结点“a”指向结点“b”所指向的所有结点,若“b”未指向任何结点,则创建结点“a=b”并使得该结点被结点“a”、“b”指向,并在有向边上记录该指向产生的语句“a=b”;
对于程序中的变量“*a”,在所述PG中创建结点“a”和“*a”,并使得结点“a”指向“*a”;以及
对于程序中的变量“&a”,在所述PG中创建结点“a”和“&a”,并使得结点“&a”指向“a”。
在一个实施例中,所述步骤S1.2还包括对所述SSA_CFG中函数间的指向分析:
基于函数调用语句“c”及其原型“d”,在所述PG中创建结点“c”和“d”,并使得“c”和“d”指向彼此所指向的结点,若二者均未指向任何结点,则创建结点“c=d”,并使得该结点被结点“c”、“d”指向,并在有向边上记录该指向产生的语句“c”。
在一个实施例中,所述步骤S1.2中的等价信息包括:
等价类指针,即指向同一个结点的指针;以及
等价类内存地址,即被同一个结点指向的内存地址。
在一个实施例中,所述步骤S1.3包括:
S1.3.1、基于所述SG,获得定义点、对应该定义点的被赋变量、使用点和对应该使用点的使用变量;以及
S1.3.2、对所述SG中的每一个语句,从所有定义点中搜索该语句的前驱语句对应的定义点,获得对应该语句的分析结果集合;
其中,所述定义点用于对语句中的被赋变量进行赋值,所述使用点用于对语句中的赋值变量进行使用。
以下列程序为例:
其中指针“a”和指针“b”为等价类,其等价关系由语句“b=a”产生,该程序将得到如下定义使用关系:
{*a=5}—>printf(“%d”,*b)。
在一个实施例中,当所述语句为赋值语句时,所述步骤S1.3还包括:
S1.3.3、从所述分析结果集合中删除对所述被赋变量或被赋变量的等价类进行定义的定义点,并将该赋值语句添加至所述分析结果集合中。
图2示出了采用本发明的示例程序一的代码示意图,本实施例以代码中第11行(*m)++为例,计算对该语句产生影响的别名修改位置,该语句对变量m进行解引用,所以需要考虑m及其等价类的相关定义点产生的影响。
首先构造示例程序一的控制流图和超图,图3示出了示例程序一的控制流图,图4示出了示例程序一的超图,
图4中每一个椭圆框代表一个语句,图中语句Entry-g到语句*z=x之间需要满足条件:*x大于*y(语句switch*x>*y就是条件),在条件下面有两条边出去,带*的表示条件成立的时候执行的语句,带0的表示条件不成立的时候要执行的语句,如图可知,如果*x小于*y,Entry-g就无法到达*z=x。
在这个程序里,得到的定义点是*z=null,使用点是(*m)++,需要计算四个条件:
1.*z=null到(*m)++的条件;
2.entry-g到*z=null的条件;
3、entry-f到(*m)++的条件;
4、entry-f到call g()的条件。
以计算*z=null到(*m)++的条件为例:当*x>*y时,会执行*z=x,导致*z被重新赋值,这样*z=null的赋值会被覆盖掉,所以首先要满足条件!(*x>*y);当*x<=*y时,会执行*z=y,导致*z被重新赋值,这样*z=null的赋值会被覆盖掉,所以首先要满足条件!(*x<=*y)。
通过指向分析,获得指针指向图,图5示出了示例程序一的指针指向图。
在指针指向图中计算,获取m等价类集合{m,*z}。
在SuperGraph上进行数据流分析,得到定义使用集合,在(*m)++位置,变量m的分析结果集合为{m=null},*z的分析结果集合为{*z=x,*z=y,*z=null}。在SuperGraph中,{m=null}到(*m)++之间的定义使用关系,必将被{*z=x,*z=y,*z=null}所覆盖,所以本步骤所得到的指针修改影响结果为{*z=x,*z=y,*z=null}。
计算条件,发现*z=null到(*m)++之间的条件为(!(*x>*y)&&!(*x<=*y)),经SMTInterpol判定为不可满足,将其从结果集中删除,最终的指针修改影响结果为{*z=x,*z=y}。
*z=null到(*m)++之间的定义使用关系,在传统的代码静态分析过程中会被误认为是空指针解引用缺陷,而本算法所给出的结果则成功解决了这一问题。
图6示出了采用本发明的方法的示例程序二的代码示意图,本实施例以代码中第10行return*a为例,计算对该语句产生影响的别名修改位置,该语句对变量a进行解引用,所以需考虑*m及其等价类的相关定义点产生的影响。
首先构造示例程序二的控制流图和超图,图7示出了示例程序二的控制流图,图8示出了示例程序二的超图。
通过指向分析,获得指针指向图,图9示出了示例程序二的指针指向图。
在SuperGraph上进行数据流分析,得到定义使用集合,在printf语句位置,关于变量m的值得分析结果集合为{*m=10,*p=5},所以本步骤所得到指针修改影响结果为{*m=10,*n=9};
计算条件,发现m与*p产生等价关系的语句“m=n”和所计算语句printf语句在逻辑上不可同时被执行,语句执行的条件分别为“a==b”和“a>b”,而SMTInterpol判定(a==b&&a>b)为不可满足,所以将*p相关从结果集中删除,最终的指针修改影响结果为{*m=10}。
图10示出了采用本发明的方法的示例程序三的代码示意图,本实施例以代码中第15行return num[b]为例,计算对该语句产生影响的别名修改位置,该语句使用变量b作为数组下标,考虑b及其等价类的相关定义点产生的修改影响,获取其数值范围。
首先构造示例程序三的控制流图和超图,图11示出了示例程序三的控制流图,图12示出了示例程序三的超图。
通过指向分析,获得指针指向图,图13示出了示例程序三的指针指向图。
在指针指向图中计算,变量b等价类集合{a,b,*m,*n}。
在SuperGraph上进行数据流分析,得到定义使用集合,可得在return num[b]位置,变量b的定义点集合为{*m=10,*n=9}。
计算条件,对于*m=10到return num[b]的定义使用关系进行计算:
*m=10到return num[b]的路径条件为True;
Entry-f到return num[b]的路径条件为True;
Entry-f到*m=10的路径条件为!(b>9);
Entry-f到m=n的路径条件为b>9;
将四个路径条件进行&&操作,得到最终的条件为(b>9)&&!(b>9),经SMT判定为不可满足,所以该定义使用关系不成立,将其从结果集中删除。
同理可得,*n=9到return num[b]的定义使用关系成立。
最终的指针修改影响结果为{*n=9}。
在一个实施例中,本发明还提供一种判断修改程序的指针是否造成影响的系统,包括:
初步判断模块,用于在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;
结果集合模块,在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;以及
再判断模块,判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种指针修改影响的分析方法,其特征在于,包括:
S1、在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;
S2、基于定义点、语句以及程序入口的关系,获得对应该定义点的多个路径条件;以及
S3、判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。
2.如权利要求1所述的方法,其特征在于,所述路径条件包括:
从所述定义点至该语句的路径条件;
从所述定义点的程序的入口至所述定义点的路径条件;
从所述语句的程序的入口至该语句的路径条件;以及
从使不同变量产生等价关系的控制流语句的程序入口至该控制流语句的路径条件。
3.如权利要求2所述的方法,其特征在于,所述步骤S2包括:从每一个路径条件的终点进行逆向递归搜索,获得从起点至终点间的所有路径,对具有相同路径的路径条件进行&&操作,再对不同路径的路径条件进行||操作,得到该条件;
其中,所述递归搜索在遇到起点、遇到覆盖起点的定义点或搜索到的语句没有前驱语句时停止。
4.如权利要求1所述的方法,其特征在于,所述步骤S1包括:
S1.1、基于程序代码的控制流图CFG,分别获得静态单赋值形式的控制流图SSA_CFG和超图SG;
S1.2、对所述SSA_CFG进行指向分析,获得指针指向图PG,基于所述PG,获得语句中变量的等价信息;以及
S1.3、基于所述等价信息,在所述SG上进行正向数据流分析,获得指针修改产生的、初步判断为具有定义使用关系的定义点,构成分析结果集合;
其中,所述变量包括指针以及指针所指向的内存地址。
5.如权利要求4所述的方法,其特征在于,所述步骤S1.2包括对所述SSA_CFG中函数内的指向分析:
对于赋值语句a=&b,在所述PG中创建结点“a”、“&b”和“b”,并使得结点“a”和“&b”均指向结点“b”,并在有向边上记录该指向产生的语句“a=&b”;
对于赋值语句“a=b;”,且a和b的类型皆为指针,则在所述PG中创建结点“a”和“b”,并使得结点“a”指向结点“b”所指向的所有结点,若“b”未指向任何结点,则创建结点“a=b”并使得该结点被结点“a”、“b”指向,并在有向边上记录该指向产生的语句“a=b”;
对于程序中的变量“*a”,在所述PG中创建结点“a”和“*a”,并使得结点“a”指向“*a”;以及
对于程序中的变量“&a”,在所述PG中创建结点“a”和“&a”,并使得结点“&a”指向“a”。
6.如权利要求5所述的方法,其特征在于,所述步骤S1.2还包括对所述SSA_CFG中函数间的指向分析:
基于函数调用语句“c”及其原型“d”,在所述PG中创建结点“c”和“d”,并使得“c”和“d”指向彼此所指向的结点,若二者均未指向任何结点,则创建结点“c=d”,并使得该结点被结点“c”、“d”指向,并在有向边上记录该指向产生的语句“c”。
7.如权利要求6所述的方法,其特征在于,所述步骤S1.2中的等价信息包括:
等价类指针,即指向同一个结点的指针;以及
等价类内存地址,即被同一个结点指向的内存地址。
8.如权利要求7所述的方法,其特征在于,所述步骤S1.3包括:
S1.3.1、基于所述SG,获得定义点、对应该定义点的被赋变量、使用点和对应该使用点的使用变量;以及
S1.3.2、对所述SG中的每一个语句,从所有定义点中搜索该语句的前驱语句对应的定义点,获得对应该语句的分析结果集合;
其中,所述定义点用于对语句中的被赋变量进行赋值,所述使用点用于对语句中的赋值变量进行使用。
9.如权利要求8所述的方法,其特征在于,当所述语句为赋值语句时,所述步骤S1.3还包括:
S1.3.3、从所述分析结果集合中删除对所述被赋变量或被赋变量的等价类进行定义的定义点,并将该赋值语句添加至所述分析结果集合中。
10.一种判断修改程序的指针是否造成影响的系统,其特征在于,包括:
初步判断模块,用于在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;
结果集合模块,在程序代码中查找该语句中变量的等价变量,并查找该等价变量所有的定义点,构成分析结果集合;以及
再判断模块,判断所有所述路径条件是否可同时满足,若不可同时满足,则将该定义点从所述分析结果集合中剔除。
CN201710189131.2A 2017-03-27 2017-03-27 一种指针修改影响的分析方法和系统 Active CN107085533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710189131.2A CN107085533B (zh) 2017-03-27 2017-03-27 一种指针修改影响的分析方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710189131.2A CN107085533B (zh) 2017-03-27 2017-03-27 一种指针修改影响的分析方法和系统

Publications (2)

Publication Number Publication Date
CN107085533A true CN107085533A (zh) 2017-08-22
CN107085533B CN107085533B (zh) 2019-09-06

Family

ID=59615043

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710189131.2A Active CN107085533B (zh) 2017-03-27 2017-03-27 一种指针修改影响的分析方法和系统

Country Status (1)

Country Link
CN (1) CN107085533B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857641A (zh) * 2018-12-29 2019-06-07 北京奇安信科技有限公司 对程序源文件进行缺陷检测的方法及装置
CN109933365A (zh) * 2018-12-28 2019-06-25 蜂巢能源科技有限公司 一种函数调用树的生成方法及装置
CN110471669A (zh) * 2019-08-02 2019-11-19 Xc5有限公司 一种空指针引用的检测方法及检测装置
CN111488579A (zh) * 2020-03-25 2020-08-04 腾讯科技(深圳)有限公司 漏洞检测方法、装置、电子设备和计算机可读存储介质
CN111857952A (zh) * 2020-07-16 2020-10-30 苏州浪潮智能科技有限公司 一种实现虚拟化平台虚拟机负载均衡的方法及系统
WO2021129074A1 (zh) * 2019-12-26 2021-07-01 深圳逻辑汇科技有限公司 用于处理程序代码中的变量的引用的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255277A1 (en) * 2003-04-18 2004-12-16 Ounce Labs, Inc. Method and system for detecting race condition vulnerabilities in source code
CN101286133A (zh) * 2008-06-02 2008-10-15 北京邮电大学 应用区间运算的软件测试方法
CN105589730A (zh) * 2015-12-29 2016-05-18 东南大学 一种基于离线约束图的指针分析方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040255277A1 (en) * 2003-04-18 2004-12-16 Ounce Labs, Inc. Method and system for detecting race condition vulnerabilities in source code
CN101286133A (zh) * 2008-06-02 2008-10-15 北京邮电大学 应用区间运算的软件测试方法
CN105589730A (zh) * 2015-12-29 2016-05-18 东南大学 一种基于离线约束图的指针分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马森 等: "基于值依赖分析的空指针解引用检测", 《电子学报》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109933365A (zh) * 2018-12-28 2019-06-25 蜂巢能源科技有限公司 一种函数调用树的生成方法及装置
CN109933365B (zh) * 2018-12-28 2022-08-19 蜂巢能源科技有限公司 一种函数调用树的生成方法及装置
CN109857641A (zh) * 2018-12-29 2019-06-07 北京奇安信科技有限公司 对程序源文件进行缺陷检测的方法及装置
CN109857641B (zh) * 2018-12-29 2022-09-13 奇安信科技集团股份有限公司 对程序源文件进行缺陷检测的方法及装置
CN110471669A (zh) * 2019-08-02 2019-11-19 Xc5有限公司 一种空指针引用的检测方法及检测装置
CN110471669B (zh) * 2019-08-02 2023-09-05 支付宝知识产权控股公司 一种空指针引用的检测方法及检测装置
WO2021129074A1 (zh) * 2019-12-26 2021-07-01 深圳逻辑汇科技有限公司 用于处理程序代码中的变量的引用的方法和系统
CN111488579A (zh) * 2020-03-25 2020-08-04 腾讯科技(深圳)有限公司 漏洞检测方法、装置、电子设备和计算机可读存储介质
CN111488579B (zh) * 2020-03-25 2023-06-02 腾讯科技(深圳)有限公司 漏洞检测方法、装置、电子设备和计算机可读存储介质
CN111857952A (zh) * 2020-07-16 2020-10-30 苏州浪潮智能科技有限公司 一种实现虚拟化平台虚拟机负载均衡的方法及系统
CN111857952B (zh) * 2020-07-16 2022-05-31 苏州浪潮智能科技有限公司 一种实现虚拟化平台虚拟机负载均衡的方法及系统

Also Published As

Publication number Publication date
CN107085533B (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN107085533B (zh) 一种指针修改影响的分析方法和系统
CN101286132B (zh) 一种基于软件缺陷模式的测试方法及系统
Chen et al. Coverage prediction for accelerating compiler testing
Vokolos et al. Pythia: A regression test selection tool based on textual differencing
Holzmann Automated protocol validation in argos: Assertion proving and scatter searching
Song et al. Efficient alignment between event logs and process models
CN111104335B (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN102567200A (zh) 基于函数调用图的并行化安全漏洞检测方法
CN104965788A (zh) 一种代码静态检测方法
US7246331B2 (en) Method for optimizing integrated circuit device design and service
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
CN103729295A (zh) 一种污点传播路径分析方法
US6990438B1 (en) Method and apparatus for observability-based code coverage
Young et al. Rethinking the taxonomy of fault detection techniques
CN102662825A (zh) 一种面向堆操作程序的内存泄漏检测方法
CN109388573A (zh) 一种无漏报的中断驱动型程序运行时错误检测方法和系统
CN105487983A (zh) 基于智能路径引导的敏感点逼近方法
CN101710303A (zh) 基于流敏感上下文敏感指向图的内存泄漏检测方法
US20030140326A1 (en) Race condition detection and expression
CN115422092B (zh) 一种基于多方法融合的软件bug定位方法
CN1188933A (zh) 程序设计中内存操作错误的识别方法
CN109032946B (zh) 一种测试方法和装置、计算机可读存储介质
CN109002723A (zh) 一种分段式符号执行方法
Saifullah et al. Exploring type inference techniques of dynamically typed languages
CN109002716A (zh) 一种移动应用的恶意代码入侵检测与防范方法

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: An analysis method and system of pointer modification influence

Effective date of registration: 20211105

Granted publication date: 20190906

Pledgee: Zhongguancun Beijing technology financing Company limited by guarantee

Pledgor: BEIJING PEKING UNIVERSITY SOFTWARE ENGINEERING CO.,LTD.

Registration number: Y2021990001072

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20190906

Pledgee: Zhongguancun Beijing technology financing Company limited by guarantee

Pledgor: BEIJING PEKING UNIVERSITY SOFTWARE ENGINEERING CO.,LTD.

Registration number: Y2021990001072

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method and system for analyzing the impact of pointer modification

Granted publication date: 20190906

Pledgee: Zhongguancun Beijing technology financing Company limited by guarantee

Pledgor: BEIJING PEKING UNIVERSITY SOFTWARE ENGINEERING CO.,LTD.

Registration number: Y2024990000293