基于全局超级块支配图的动态符号执行方法及其装置的制作方法

文档序号:6398317阅读:236来源:国知局
专利名称:基于全局超级块支配图的动态符号执行方法及其装置的制作方法
技术领域
本发明提出的基于全局超级块支配图的动态符号执行方案,属于计算机动态软件测试和软件安全领域,可用于动态程序分析、自动测试用例生成、软件漏洞挖掘等方面。
背景技术
动态符号执行技术是最近几年提出的新技术,目前在软件行为分析、软件缺陷分析、漏洞测试、测试用例自动生成等领域都有应用。动态符号执行能够生成每条路径对应的测试输入,可动态检测每条路径及死角上存在的Bug,并且不依赖源代码,避免了静态测试方法人工开销大、效率低、误报率高以及Fuzzing测试的随机性等缺陷,能够更全面、精确地进行软件脆弱性检测,具有更广泛的应用前景,已成为软件测试技术新的研究及发展方向。动态符号执行主要由二进制插装、混合执行(实际执行与符号执行)、漏洞检测、约束条件求解四个模块组成。一般执行过程如下:在首次执行时,由测试人员提供随机或者组织好的输入值,通过对二进制文件插桩,将输入数据符号化,在实际执行被测程序同时符号执行,插装程序跟踪输入符号在执行路径上的操作,实际执行调用漏洞检测工具检测程序漏洞;符号执行在条件分支处搜集输入变量相关的约束条件(即分支条件表达式)。执行完成后将依次收集到的约束条件组成路径约束条件,这些路径约束条件按照指定的路径搜索算法将某条取反,用求解器求解,可生成新的测试用例。新的测试用例驱动新一次执行沿不同路径自动执行。在执行过程中,如果漏洞检测工具检测出了漏洞,则会产生相应的报警,并保存触发该漏洞的输入测试用例,以便在具体分析时能够再次触发该漏洞。此后,程序继续执行,直到被测程序所有可执行路径都被测试完成。目前,基于动态符号执行的软件安全检测方法在理论上已经基本成熟,但在实际应用还存在着许多尚未解决的问题阻碍其实用化,如路径爆炸问题、约束求解问题、外部函数跟踪问题、浮点指针计算问题、环境交互问题等。其中路径爆炸问题是动态符号执行面临的主要问题,已成为符号执行实际应用于大中型应用软件的瓶颈。符号执行在理论上能够遍历程序中的每一条可达路径并生成测试用例。实际上,程序的可执行路径数目随着程序中分支的数目成接近指数倍增长。并且在遇到循环的情况下,路径数目的增长更加迅速,这就是所谓的路径爆炸问题。路径爆炸问题是由被分析程序内部结构引起的,不能消除而只能采取一定的方法缓解。主流的符号执行工具只能探测所有路径的小部分,这与动态符号执行的设计目标相差甚远。使用最少的测试用例覆盖最多的代码,从而提高符号执行的覆盖率,是缓解路径爆炸的最优方法。现有的处理路径爆炸的方法大多可归纳为路径裁剪法,如限制路径探测的深度、获取循环控制变量,控制循环次数等,这些方法将很多可执行路径盲目裁剪掉,导致这些路径上的代码块将永远不能被执行到,从而降低了动态符号执行的精度,不能有效检测死角上的不够。而设计良好的路径选择算法,用尽量少的测试用例覆盖尽量多的代码块,能有效缓解路径爆炸问题,提高符号执行的性能。但是常使用的深度优先和广度优先的路径探索算法都达不到该目的。目前看似最优的代生算法在实际执行过程中开销和误差都非常大。本发明提出了一种利用全局超级块支配图来控制路径选择的方法,能够有效提高动态符号执行的性能。该方法采用类似于贪心算法的思想,使每次选择的路径都是局部最优的,从而达到整体最优的近似解。

发明内容
本发明旨在目的在于提高符号执行的代码覆盖率,能够有效缓解路径爆炸问题对动态符号执行性能的影响。本方案利用超级块支配图来驱动动态符号执行的路径选择,使每次都能尽可能的覆盖到最多的代码块,需要解决的技术问题主要包含以下两个:
1、准确生成目标二进制程序对应的全局超级块支配图。全局超级块支配图是由软件对应的控制流图根据图论转化而来的,因此转化的每个步骤都必须以图论作为基础,以保证超级块支配图的准确性。2、将全局超级块支配图作用于动态符号执行的路径选择。本发明的核心思想就是利用全局超级块支配图来控制动态符号执行的每一次路径选择,以保证每次符号执行都能尽可能覆盖到最多的代码块。本发明为了实现上述目的采用以下技术方案:
一种基于全局超级块支配图的动态符号执行方法,其特征在于包括以下步骤:
I)、获得程序的控制流图和函数调用关系 2)、利用Boost图形库提供的支配树算法获得被测程序的立即前、立即后支配树;
3)、合并立即前、并立即后支配树形成函数基本块支配 4)、合并函数基本块支配图中的强连通分量形成超级块支配 5)、利用函数调用关系图将所有函数的超级块支配图合并,形成全局超级块支配图,并为全局超级块支配图各节点设置初始权值及标记为“未执行”状态;
6)、为被测程序提供初始输入,并对被测程序插装,将被测试程序运行起来;
7)、检测程序执行路径上是否有潜在的漏洞,并自动搜集路径约束条件;
8)、利用执行过程中的基本块覆盖信息更新超级块支配图中各节点的权值和执行状
态;
9)、根据超级块支配图的权值,从已执行路径上的所有分支中选择权值最大的分支节
占.10)、从路径约束条件中找出第(9)步选择出的分支节点对应的条件表达式,将该表达式取反,保留该表达式之前的约束条件,删除之后的,形成预测路径约束条件;
II)、利用求解器求解预测路径约束条件,生成新测试用例,如果无解,则回到第(9)步,重新选择分支;
12)、如果还有新的测试用例生成,则代替初始测试用例回到第(6)步续执行。否则表示所有的可执行路径分支都已被执行,则测试结束。所述的程序的控制流图表示为四元组G = OV, E, entry, exit);
#是控制流图的节点结合,每个节点代表程序中的一个基本块;
万是有向边的集合,每一条边代表了 一个基本块之间的控制流转移;
en try是程序的入口点; exi t是程序的出口点。所述合并基本块支配图中的强连通分量形成超级块支配图包括以下步骤:31 )、从e/ ir_F基本块开始到exit结束,如果相邻基本块节点相互支配,则合并为超级块节点,并删除两条相互指向的边,其他边保持不变;
32)、如果新生成的超级块还有相互支配的相邻基本块,则根据(31)的方法继续合并;将支配图中的所有强连通分量的节点合并成一个节点;
33)、合并同向边,若相邻节点之间有两条以上同向边,则只保留一条。所述步骤8具体包括以下步骤:
41)、根据基本块覆盖信息文件,将已被执行的超级块全部标记为“执行”;
42)、从根节点开始以递归方式依次为各节点设置新权值,设置方式如下:
如果当前超级块已被执行,则其权值=父节点的权值和;否则权值=父节点的权值和+本节点基本块的个数。一种基于全局超级块支配图的动态符号执行装置,其特征在于包括:
控制流图生成模块:本模块的功能是产生目标程序每个函数对应的控制流图,以及程序内部函数调用关系 支配图生成模块:本模块的功能是根据程序每个函数的控制流图,根据节点的支配关系生成对应的立即前支配树和立即后支配树,然后将两者合并成函数基本块支配 超级块支配图生成模块:本模块的功能是将函数基本块支配图化简生成超级块支配
全局超级块支配图生成模块: 本模块的功能是根据程序的函数调用关系图和每个函数对应的超级块支配图,产生程序对应的全局超级块支配图,并为每个超级块节点设置初始权值;
插装模块:本模块的功能是对可执行文件插入监视指令,并动态监控程序执行情况,通过该模块,程序当前执行的指令信息、寄存器信息、内存信息、函数调用信息都可以获得,用于符号执行搜集路径约束条件;
混合执行模块:本模块的功能是实际执行应用程序,调用漏洞检测工具检测执行路径上潜在的bug,并符号执行搜集路径约束条件;
路径选择模块:本模块的功能是在每次符号执行结束后,更新全局超级块支配图的节点的权值,并根据权值判断下次执行能够覆盖最多基本块的分支路径,生成预测路径约束条件;
求解器求解模块:本模块的功能是对预测路径约束条件求解,生成新的测试用例,用来驱动下一次混合执行。一种基于全局超级块支配图的动态符号执行装置中所述的程序的控制流图表示为四元组 G = {N, E, entry, exit);
#是控制流图的节点结合,每个节点代表程序中的一个基本块;
万是有向边的集合,每一条边代表了一个基本块之间的控制流转移; en try是程序的入口点; exi t是程序的出口点。一种基于全局超级块支配图的动态符号执行装置中所述超级块支配图生成模块将函数基本块支配图化简生成超级块支配图包括以下步骤:
rIWhkentry基本块开始到exi 结束,如果相邻基本块节点相互支配,则合并为超级块节点,并删除两条相互指向的边,其他边保持不变;
72)、如果新生成的超级块还有相互支配的相邻基本块,则根据(71)的方法继续合并;将支配图中的所有强连通分量的节点合并成一个节点;
73)、合并同向边,若相邻节点之间有两条以上同向边,则只保留一条。一种基于全局超级块支配图的动态符号执行装置中所述路径选择模块具体包括以下步骤:
81)、根据基本块覆盖信息文件,将已被执行的超级块全部标记为“执行”;
82)、从根节点开始以递归方式依次为各节点设置新权值,设置方式如下:如果当前超级块已被执行,则其权值=父节点的权值和;否则权值=父节点的权值和+本节点基本块的个数;
83)、更新权值后,从已执行路径的所有未执行分支中选择权值最大的节点;
84)、从路径约束条件中选择与该节点对应的条件表达式,将该条件表达式取反,保留之前的约束条件,删除之后的,形成预测路径约束条件。本发明具有以下有益效果:
本发明能用最少的测试用例尽可能的覆盖最多的代码块,缓解动态符号执行在测试大型应用程序时产生的路径爆炸问题,显著提高动态符号执行的效率。


图1为基于全局超级块支配图的动态符号执行框架 图2为控制流图示例;
图3为立即前支配树;
图4为立即后支配树;
图5为基本块支配 图6为超级块支配图。
具体实施例方式本实施案例详细讲述了一种实现本发明的方式,但本发明的保护范围不仅仅局限于采用这种方式,凡是采用本发明思想的实施方式都在本发明的保护范围内。控制流图生成模块:
本模块的功能是生成目标程序每个函数对应的控制流图及函数调用关系图。下面简要介绍与控制流图相关的图论知识。程序的控制流图可由四元组G = {N, B, entry, exit、,#是控制流图的节点结合,每个节点代表程序中的一个基本块必是有向边的集合,每一条边代表了一个基本块之间的控制流转移;洲^_7是程序的入口点是程序的出口点。基本块是程序中的一段指令序列,在一个基本块中,程序只能从第一条指令逐条执行到最后一条语句,基本块的最后一条语句完成从当前基本块到下一个基本块的控制流转移,基本块可以简化程序结构,方便程序分析。图2是一个大约100行汇编指令的函数对应的控制流图,标号为O的节点是控制流图的entry基本块;13表不控制流图的exit基本块,图中包含大量的分支和循环。函数调用关系图与控制流图类似,只需把各个函数看作基本块既可。控制流图是程序分析的基础,一个函数有唯一对应控制流图。整个程序的控制流图需要由函数的控制流图和函数调用关系图组合而成,结构复杂。本专利只对每个函数的控制流图分析处理,只在最后阶段生成整个程序对应的全局超级块支配图。有大量的算法和现成较成熟的工具可以绘制控制流图,在本实施方案中,利用编写商业软件IDA Pro的插件来生成目标程序对应的控制流图和函数调用关系图。支配图生成模块
本模块的功能是生成被测试程序的支配图,本模块的输入是程序每个函数的控制流图,输出是函数对应的支配图。控制流图的支配图是通过合并立即前、后支配树而来的,下面简要介绍与支配图相关的图论知识。在控制流图G = OV, B, entry, ezii)中,一条从节点A到节点&的路径被定义为有向边的序列:(A, η).../ 》...nv),
Ui K, (ηH1) Ε0立即前支配:一个节点#前支配一个节点r,当且仅当从到r的所有路径
都经过#,表示为w = v 。节点立即前支配节点/ ,当且仅当= W.并且不存在节点
0(0!^),满足 1!!1£ 且£ = ,表示为 = 。立即前支配树是一棵具有根节点的树,且
树中的节点和控制流图的节点完全一致,树的根节点是控制流图的entry结点。如图2中,节点I是节点2的立即前支配,节点3是节点6的立即前支配。图3是图2的立即前支配树。立即后支配:一个节点#后支配一个节点K,当且仅当从K到^rii的所有路径都经过#,表示为O节点m立即后支配节点/7,当且仅当节点, n并且不存在节点O
(0!项),满足抓=0且0!!5 ,表示为抓= 。立即后支配树是一颗具有根节点的树,
树中的节点和控制流图的节点完全一致,根节点是控制流图的结点。立即后支配树可以通过将程序流图逆置(将边翻转),然后求逆图的立即前支配树获取。图4是图2的立即后支配树。支配图:一个节点『支配一个节点当且仅当从entry到exit的所有经过r的路径都经过#(#!=幻,,d'。从数学定义上讲,节点w支配节点V,当且仅
支配图可通过合并立即前支配树和立即后支配树,合并同向边得到。由支配图
的定义可知支配图是有向无环图,而不是树。图5是与图2对应的支配图。立即前、后支配树 算法现已是研究的比较成熟,在编译优化、网络拓扑、程序分析等方面都有应用,并且有大量现成的函数库支持立即前、后支配树的计算。在本实施方案中,采用Boost图形库BGL中的支配树算法来实现立即前、后支配树。并通过简单的边合并生成支配图。超级块支配图生成模块本模块的功能是将支配图通过化简形成超级块支配图。输入是函数的支配图,输出是函数的超级块支配图。通过观察支配图5可以发现,图中存在很多相邻节点双向联通的情况,即两个节点相互支配。如节点(3,2)等,也就是说从到exit所有经过节点2的路径必然经过节点3,经过节点3的所有路径必然经过节点2。进一步的讲,节点2和节点3在同一条路径上,如果基本块2被执行则基本块3也必然会被执行,反之亦然。如此,可以将所有双向联通的基本块合并成一个超级块节点,则超级块中的所有基本块都必将会在同一条执行路径上被执行。合并步骤如下:
(I)从miir基本块开始到结束,如果相邻基本块节点相互支配,则合并为超级块节点,并删除两条相互指向的边,其他边保持不变。(2)如果新生成的超级块节点还有相互支配的相邻基本块,则根据(I)的方法继续合并。也就是说将支配图中的所有强连通分量的节点合并成一个节点。如图5中2、3、6这3个节点分别双向可达,是一个强连通分量,将被合并成一个超级块节点(2,3,6)。(3)删除复合边。复合边的定义如下:设是有向图中的两个节点,且 到r有有向边< , V>直接可达,若节点U还有不经过< , V>边的其他路径可以到达节点K,则称边<u, ν>为复合边。在强连通分量合并后需要删除图中的复合边,简化超级块支配图。图5经过化简后得到的超级块支配图如图6所示,所用的强连通分量都被合并成一个超级块节点,图的形状变得非常精简。在超级块支配图中,一个超级块中的所有基本块都在同一条路径上,如果一个基本块被执行,则其他基本块也将会被执行。超级块支配图是一个有向无环图(示例图没有表现出这一特性),有一个根节点,根节点是由每次执行都会被执行到的所有基本块组成的。从图2也可看出,每条执行路径都必定会经过entry、l、7、exit等节点。同一层的节点表示不同路径上的基本块,父子关系表示子节点在父节点的某一条分支路径上。 全局超级块支配图生成模块 本模块的功能是根据程序的函数调用关系图,将每个函数对应的超级块支配图组合成程序对应的全局超级块支配图。当然,也可以根据程序全局控制流图生成全局超级块支配图,但是由于函数之间调用关系复杂,所以我们采取先生成每个函数的超级块支配图,再根据函数调用关系图,组成全局超级块支配图,这样可以简化实现过程。合并各个函数超级块支配图后,形成新的图形将与图5类似,只不过图中的节点可能是超级块节点,需要按照超级块支配图生成模块中介绍的合并方法,重新合并强连通分量,删除复合边,最终形成全局超级块支配图,形状与图6类似。全局超级块支配图生成后需要为各个超级块节点设置初始权值,并标记为“未执行”。初始权值表示从entry到该超级块(包括entry和当前超级块)的路径上,未执行的基本块的个数,进一步的讲,可以表示执行该节点所在的路径时最少可以覆盖的基本块的数量。如图6所示,根节点的初始权值为6,(2,3,6)节点的权值为9。全局超级块支配图只需生成一次,在整个测试阶段都可复用,每次符号执行后更新。本发明的关键也就在于生成全局超级块支配图,然后根据图的权值来执行路径选择,达到符号执行性能优化的效果。插装模块
该模块的功能是在运行时对被测程序插入监视指令。通过对被测程序插桩,可以监测正在执行的指令信息、寄存器信息、内存信息、函数调用等信息,从而跟踪符号的流通、操作,并在分支指令处收集路径约束条件。二进制插装是进行程序动态分析常用的一项技术,现已有很多程序的二进制插装工具,如:ATOM、Dynins、Valgrind、PIN、Nirvana、HDTrans等。在本方案中采用Valgrind作为插桩工具,Valgrind还能在混合执行时进行漏洞检测。混合执行模块
本模块的功能是加载被测试程序运行,调用漏洞检测工具检测执行路径上潜在的缺陷;同时伴随符号执行,搜集路径约束条件。混合测试仅在启动时需要用户提供输入,之后在执行过程中自动产生新测试用例,完成程序路径状态空间的检测。符号执行的具体过程在很多论文和专利中都有详细的讲述,在这里就不作具体介绍了。路径选择模块
本模块的功能是在本次符号执行结束后,更新全局超级块支配图节点的权值,并根据权值选择下次的执行路径分支,生成预测路径约束条件。模块的功能如下:
(I)根据基本块覆盖信息文件,将已被执行的超级块全部标记为“执行”。(2)从根节点开始以递归方式依次为各节点设置新权值。设置方式如下:如果当前超级块已被执行,则其权值=父节点的权值和(有向无环图,可能有多个父节点);否则权值=父节点的权值和+本节点基本块的个数。如图6,每个节点旁边有一组表示权值的数据,
“\”之前是初始权值,“\”之后是执行路径
权利要求
1.一种基于全局超级块支配图的动态符号执行方法,其特征在于包括以下步骤: I)、获得程序的控制流图和函数调用关系图; 2)、利用Boost图形库提供的支配树算法获得被测程序的立即前、立即后支配树; 3)、合并立即前、立即后支配树形成函数基本块支配图; 4)、合并函数基本块支配图中的强连通分量形成函数超级块支配图; 5)、利用函数调用关系图将所有函数超级块支配图合并,形成全局超级块支配图,并为全局超级块支配图中的各节点设置初始权值,并标记为“未执行”状态; 6)、为被测程序提供初始输入,并对被测程序插装,将被测试程序运行起来; 7)、检测程序执行路径上是否有潜在的漏洞,并自动搜集路径约束条件;8)、利用执行过程中的基本块覆盖信息更新超级块支配图各节点的权值和执行状态;9)、根据超级块支配图的权值,从已执行路径上的所有分支中选择权值最大的分支节占.10 )、从路径约束条件中找出第(9 )步选择出的分支节点对应的条件表达式,将该表达式取反,保留该表达式之前的约束条件,删除之后的,形成预测路径约束条件; II)、利用求解器求解预测路径约束条件,生成新测试用例,如果无解,则回到第(9)步,重新选择分支; 12)、如果还有新的测试用例生成,则代替初始测试用例回到第(6)步续执行。否则表示所有的可执行路径分支都已被执行,则测试结束。
2.根据权利要求1所述的一种基于全局超级块支配图的动态符号执行方法,其特征在于:所述的程序的控制流图表示为四元组G = OV, B, entry, exit); #是控制流图的节点结合,每个节点代表程序中的一个基本块; 万是有向边的集合,每一条边代表了一个基本块之间的控制流转移; en try是程序的入口点; exi t是程序的出口点。
3..根据权利要求1所述的一种基于全局超级块支配图的动态符号执行方法,其特征在于:步骤4)中所述合并基本块支配图中的强连通分量形成超级块支配图包括以下步骤:31 )、从基本块开始到exit结束,如果相邻基本块节点相互支配,则合并为超级块节点,并删除两条相互指向的边,其他边保持不变; 32)、如果新生成的超级块还有相互支配的相邻基本块,则根据(31)的方法继续合并;将支配图中的所有强连通分量的节点合并成一个节点; 33)、合并同向边,若相邻节点之间有两条以上同向边,则只保留一条。
4.根据权利要求1所述的一种基于全局超级块支配图的动态符号执行方法,其特征在于:所述步骤8具体包括以下步骤: 41 )、根据基本块覆盖信息文件,将已被执行的超级块全部标记为“已执行”状态。
42)、从根节点开始以递归方式依次为各节点设置新权值,设置方式如下: 如果当前超级块已被执行,则其权值=父节点的权值和;否则权值=父节点的权值和+本节点基本块的个数。
5.一种基于全局超级块支配图的动态符号执行装置,其特征在于包括:控制流图生成模块:本模块的功能是产生目标程序每个函数的控制流图,以及程序内部函数调用关系图; 支配图生成模块:本模块的功能是根据程序每个函数的控制流图,根据节点的支配关系生成对应的立即前支配树和立即后支配树,然后将两者合并成函数基本块支配图; 超级块支配图生成模块:本模块的功能是将函数基本块支配图化简为函数超级块支配图; 全局超级块支配图生成模块:本模块的功能是根据程序的函数调用关系图和每个函数对应的超级块支配图,产生程序对应的全局超级块支配图,并为每个超级块节点设置初始权值和执行状态标记; 插装模块:本模块的功能是对可执行文件插入监视指令,并动态监控程序执行情况,用于符号执行搜集路径约束条件; 混合执行模块:本模块的功能是实际执行应用程序,调用漏洞检测工具检测执行路径上潜在的bug,并符号执行搜集路径约束条件; 路径选择模块:本模块的功能是在每次符号执行结束后,更新全局超级块支配图的节点的权值,并根据权值判断下次执行能够覆盖最多基本块的分支路径,生成预测路径约束条件; 求解器求解模块:本模块的功能是对预测路径约束条件求解,生成新的测试用例,用来驱动下一次混合执行。
6.根据权利要求5所述的一种基于全局超级块支配图的动态符号执行装置,其特征在于:所述的程序的控制流图表示为四元组G = OV, B, entry, exit); #是控制流图的节点结合, 每个节点代表程序中的一个基本块; 万是有向边的集合,每一条边代表了一个基本块之间的控制流转移; en try是程序的入口点; exi t是程序的出口点。
7..根据权利要求5所述的一种基于全局超级块支配图的动态符号执行装置,其特征在于:所述超级块支配图生成模块将函数基本块支配图化简生成超级块支配图包括以下步骤: 71 )、从基本块开始到exit结束,如果相邻基本块节点相互支配,则合并为超级块节点,并删除两条相互指向的边,其他边保持不变; 72)、如果新生成的超级块还有相互支配的相邻基本块,则根据(71)的方法继续合并;将支配图中的所有强连通分量的节点合并成一个节点; 73)、合并同向边,若相邻节点之间有两条以上同向边,则只保留一条。
8.根据权利要求5所述的一种基于全局超级块支配图的动态符号执行装置,其特征在于:所述路径选择模块具体包括以下步骤: 81)、根据基本块覆盖信息文件,将已被执行的超级块全部标记为“已执行”状态; 82)、从根节点开始以递归方式依次为各节点设置新权值,设置方式如下:如果当前超级块已被执行,则其权值=父节点的权值和;否则权值=父节点的权值和+本节点基本块的个数; 83)、更新权值后,从已执行路径的所有未执行分支中选择权值最大的节点; 84)、从路径约束条件中选择与该节点对应的条件表达式,将该条件表达式取反,保留之前的约束条件,删除之后的,形成预测路径约束条件。
全文摘要
本发明提供了一种基于全局超级块支配图的动态符号执行方法及其装置,属于计算机软件测试和软件安全领域。方法如下获取被测可执行程序的控制流图,按支配关系相关理论转化为超级块支配图。对图中每个节点标“权”,并在每次符号执行前更新,“权”表示执行该节点最少能覆盖的基本块个数。在一次动态符号执行结束后,从超级块支配图中选择“权”值最大的节点,并生成对应的预测路径约束条件,然后用求解器求解生成新测试用例,驱动下次执行。本方案与已有技术相比,能够以最少的测试用例尽可能覆盖更多的代码块,有效提高代码覆盖率增长速度,缓解路径爆炸问题。本发明对提高动态符号执行测试大型应用软件的性能有重大的意义。
文档编号G06F11/36GK103116540SQ20131002467
公开日2013年5月22日 申请日期2013年1月23日 优先权日2013年1月23日
发明者张小松, 陈厅, 吉小丽, 牛伟纳, 陈瑞东, 王东 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1