CN104375942A - 一种面向二进制的混合模糊测试方法 - Google Patents

一种面向二进制的混合模糊测试方法 Download PDF

Info

Publication number
CN104375942A
CN104375942A CN201410758900.2A CN201410758900A CN104375942A CN 104375942 A CN104375942 A CN 104375942A CN 201410758900 A CN201410758900 A CN 201410758900A CN 104375942 A CN104375942 A CN 104375942A
Authority
CN
China
Prior art keywords
test case
testing
path
tested program
program
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
CN201410758900.2A
Other languages
English (en)
Other versions
CN104375942B (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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201410758900.2A priority Critical patent/CN104375942B/zh
Publication of CN104375942A publication Critical patent/CN104375942A/zh
Application granted granted Critical
Publication of CN104375942B publication Critical patent/CN104375942B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种面向二进制的混合模糊测试方法,包括:采用模糊测试作为前端处理,其中利用测试用例来驱动被测试程序的执行;采用二进制代码覆盖率监测处理作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试的覆盖率;当计算出的模糊测试的覆盖率不再提高时,执行作为后端处理的符号执行处理,在符号执行处理中生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例,然后将新的测试用例反馈至模糊测试,使得模糊测试利用新的测试用例来驱动被测试程序的执行。

Description

一种面向二进制的混合模糊测试方法
技术领域
本发明涉及计算机技术领域,更具体地说,本发明涉及一种面向二进制的混合模糊测试方法。
背景技术
随着计算机科学技术和互联网技术飞速发展,软件安全问题层出不穷,软件安全一直备受关注。在软件安全性测试领域,模糊测试和符号执行是两种使用较为广泛的测试方法。
模糊测试(Fuzzing)是目前安全性测试领域最常用的技术手段,其基本思想是向目标程序提供大量的畸形输入并监控目标系统的异常结果来发现软件缺陷。模糊测试的基本流程为:
1)确定待测试的目标程序,分析程序输入数据的基本结构信息,程序输入包括命令行参数、文件、网络数据包、环境变量等;
2)依据待测目标程序和输入数据的基本结构信息的不同,选择相应的测试用例生成方案,生成模糊测试数据;
3)将测试输入逐个推送至目标程序,驱动程序执行并监控程序运行状态;
4)将引起程序异常的测试用例和系统状态进行记录;
5)进一步分析系统异常原因,确定该异常信息是否可被进一步利用(该阶段为非必须阶段)。
模糊测试技术的优势在于其不需要任何关于软件或协议的先验知识,且测试过程简单、高效,自动化程度高。但由于测试用例生成策略的限制,模糊测试存在一定的局限性。其生成的测试用例具有单一性,多个用例往往覆盖程序的同一条路径,无法保证测试的代码覆盖率,致使测试过程不全面。
传统模糊测试技术的不足促进了符号执行技术的发展。
符号执行是一种验证程序正确性的方法,其基本思想是将目标程序的具体输入用符号变量表示,根据程序语义,使用符号变量解释执行程序,在程序的执行过程中使用符号变量表示程序变量,在程序的分支跳转处使用符号表达式表示跳转条件。程序的最终输出是由符号变量组成的逻辑或算术表达式,称为路径约束条件。对路径约束条件进行可满足性的判断,通过对约束条件取反,进行符号变量的求解,生成新的测试用例,新生成的测试用例可以覆盖程序中新的路径。
符号执行试图通过分析程序中所有可执行路径,达到程序状态空间的完全遍历。在理论上,符号执行可以保证较高的测试覆盖率,但具体使用中存在路径爆炸,约束求解耗时耗能等问题。
目前,对于源代码的安全性测试已经有将模糊测试和符号执行相结合的方法。非专利文献1(Internat ional Conference on Software Engineering,29卷,416-426页)针对C程序提出了一种混合执行的测试方法,模糊测试和符号执行交替执行,同时从广度上和深度上探索程序状态空间。非专利文献1在源代码符号执行工具CUTE上实现了该算法,实验结果表明在相同的系统开销下,该方法相比于单独的模糊测试和符号执行都可达到较高的测试覆盖率,能探索更大的程序状态空间。
但是,非专利文献1中提出的方法只适用于源代码层面,无法针对二进制程序进行分析。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种能够针对二进制程序的混合模糊测试方法,该将模糊测试和符号执行相结合,同时从广度上和深度上探索程序状态空间。通过该方法可以在合理的系统资源开销下,获得较高的测试覆盖率。
为了实现上述技术目的,根据本发明,提供了一种面向二进制的混合模糊测试方法,包括:采用模糊测试作为前端处理,其中利用测试用例来驱动被测试程序的执行;采用二进制代码覆盖率监测处理作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试的覆盖率;当计算出的模糊测试的覆盖率不再提高时,执行作为后端处理的符号执行处理,在符号执行处理中生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例,然后将新的测试用例反馈至模糊测试,使得模糊测试利用新的测试用例来驱动被测试程序的执行。
优选地,符号执行处理采用动态符号执行技术。
优选地,在符号执行处理中,对被测试程序的输入进行符号化处理,抓取当前测试用例的执行轨迹,使用中间语言对轨迹文件进行形式化描述,生成当前路径的约束条件,采用基于代的路径搜索算法对路径约束条件取反,借助约束求解器求解路径约束条件,最终生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例。
优选地,模糊测试在接收到从符号执行处理反馈来的新的测试用例之前,利用基于变异的策略生成的测试用例来驱动被测试程序的执行。
优选地,所述面向二进制的混合模糊测试方法用于软件安全性测试。
本发明的混合模糊测试方法针对的是二进制程序,相比于源代码测试更具适用性和实际价值。本发明的混合模糊测试方法在每次切换到符号执行时,只进行一次符号执行操作,并非重复执行符号执行,增强了符号执行的可用性。将模糊测试和符号执行相结合提出混合模糊测试方法,该方法引入符号执行指导部分测试用例的生成,构成一个带反馈式的模糊测试系统,消除了传统模糊测试生成测试用例的盲目性,整个系统在合理的资源开销下,可以达到更高的测试覆盖率。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的面向二进制的混合模糊测试方法的系统架构简图。
图2示意性地示出了根据本发明优选实施例的面向二进制的混合模糊测试方法的系统架构详图。
图3示意性地示出了根据本发明优选实施例的混合模糊测试系统的伪代码实现的示例。
图4示意性地示出了本发明具体实施例采用的基于代的路径遍历算法。
图5示意性地示出了根据本发明优选实施例的针对Linux系统下的常用二进制程序ls的中间语言片段的具体示例。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
对二进制代码分析,相比源代码分析具有以下优势:首先,对二进制可执行程序分析不依赖于源代码,可以很好地保护商业机密。其次,在源代码编译成最终的二进制程序的过程中,可能会有编译器优化或代码混淆器引入的隐蔽软件缺陷。因此,源代码正确,二进制程序不一定正确,只有对最终的二进制程序进行测试分析,才可能发现此类问题。最后,现有的不同软件是由不同的编程语言(C、C++、JAVA、脚本语言等)编写而来,目前还不存在跨编程语言的源代码安全性分析系统,对源代码进行分析,需要对不同的编程语言的语法和语义信息建立不同的模型后进行分析。但它们最终的二进制代码都是统一形式的机器指令,因此,对二进制程序分析不受编程语言差异的影响。
本发明提出的混合模糊测试方法的系统架构简图如图1所示,系统架构详图如图2所示。
如图1和图2所示,根据本发明优选实施例的面向二进制的混合模糊测试方法包括:
采用模糊测试100作为前端处理,其中利用测试用例来驱动被测试程序的执行(模糊测试100初始地可以利用基于变异的策略生成的测试用例来驱动被测试程序的执行,即,模糊测试100在接收到从符号执行处理300反馈来的新的测试用例400之前,利用基于变异的策略生成的测试用例来驱动被测试程序的执行);
采用二进制代码覆盖率监测处理200作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试100的覆盖率;
当计算出的模糊测试100的覆盖率不再提高时,执行作为后端处理的符号执行处理300,其中符号执行处理300生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例400,然后将新的测试用例400反馈至模糊测试100,使得模糊测试100利用新的测试用例400来驱动被测试程序的执行。
具体地说,例如如图2所示,符号执行处理300可采用动态符号执行技术,首先对被测试程序的输入进行符号化处理,抓取当前测试用例的执行轨迹,使用中间语言对轨迹文件进行形式化描述,生成当前路径的约束条件,采用基于代的路径搜索算法对路径约束条件取反,借助约束求解器求解路径约束条件,最终生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例400;然后将新的测试用例400反馈至模糊测试100,使得模糊测试100利用新的测试用例400来驱动被测试程序的执行。
而且,在具体实施时,可以重复执行上述方法的过程。
上述面向二进制的混合模糊测试方法用于软件安全性测试。
为了更详细地描述本发明的具体实施细节,下面将详细描述本发明的具体实施方式及具体实例。
混合模糊测试系统的伪代码实现的实例如图3所示。算法的基本流程为:算法输入为可执行程序和本次测试的目标(例如测试用例数量,覆盖率),3-15行是循环的主体:循环过程首先将覆盖率提高标志(coverage_flag)设为真(3行);在执行模糊测试的同时监测代码覆盖率情况,直到程序覆盖的基本块数量不再增加时,将coverage_flag设为假(4-10行);此时结束内层循环,转为符号执行,产生新的输入,继续执行循环体(13-15行)。
传统的模糊测试作为整个混合模糊测试系统的前端,采用基于变异或者基于生成的测试用例生成方法,持续不断地产生测试用例,将生成的测试用例注入到目标程序中,驱动程序执行。在目标程序的执行过程中,通过二进制代码覆盖率监测实时计算测试覆盖率。
混合模糊测试系统在代码覆盖率不再提高时转入后端符号执行,代码覆盖率不再提高意即所覆盖的基本块的数量不再增加。符号执行模块作为混合模糊测试系统的后端,主要任务是在程序执行过程中收集路径约束条件,通过一定的路径搜索策略生成新的路径约束条件,最后使用特定的约束求解器求解生成覆盖其他路径的测试用例,以此提高模糊测试的测试覆盖率。在符号执行过程中,对二进制程序的分析,实质上是对内存单元和寄存器分析。汇编指令虽然能表示出机器语言的所有操作,但并未将这些操作所产生的影响(s ide effect)体现出来,也就无法将标志寄存器EFlags的状态体现出来。程序执行到分支跳转指令时,会根据EFlags中的某些标志位决定是否跳转,EFlags是一个32位寄存器,由状态标志位,控制标志位和系统标志位组成。符号执行系统收集路径约束条件时,主要依据轨迹中的条件转移指令(jcc),条件转移指令依据EFlags的值决定执行不同的分支。而EFlags中的值又依赖于前面能影响EFlags寄存器的机器指令,因此在将该机器指令转换成汇编指令的同时将其对EFlags寄存器的影响表示出来,就可以确定条件转移指令处该选择的路径。需采用某种中间语言(Intermediate Language)来表示指令及指令对于EFlags寄存器的影响。
符号执行得到的路径约束条件是由符号变量表示的表达式组成的函数,为构造新的路径约束条件,需采用一定的路径搜索策略。本发明的具体实施例可以采用一种基于代的路径遍历算法(Generat ion Search,GS),如图4所示。GS算法的基本思想是:对于当前输入所产生的路径约束条件,依次对约束条件进行取反操作,生成下一代路径约束条件集,重复该过程,即可遍历程序中所有可执行路径。相比于深度遍历和广度遍历每次产生一个新的路径,GS算法每次可产生多个新的路径约束,从而求解产生多个新的输入。符号执行模块作为模糊测试系统的后端,是当模糊测试在执行过程中监测到代码覆盖率不再提高时,转为符号执行,由符号执行产生通往其他路径的新输入,并不是循环执行符号执行以搜索程序中所有的路径,因此本文在符号执行过程中只产生第一代的新的约束条件,通过约束求解器求解产生新的输入。
【具体实例】
对Linux系统下的常用二进制程序ls(以列表形式显示目录内容)进行安全性分析。目标程序ls的外部输入由一系列选项参数及目标路径组成,采用基于变异的测试用例生成策略随机产生测试用例。使用生成的测试用例驱动目标程序ls运行。
ls程序开始运行,同时启动二进制代码覆盖率监测模块。每个测试用例执行完毕后,分析该用例覆盖的基本块,将该测试用例加入到以往所有执行过的测试用例中,构成一个新的测试用例集,然后计算整个测试用例集的代码覆盖率(也可以计算用例集覆盖的不同的基本块数量)。
当二进制代码覆盖率监测模块监测到新执行的测试用例无法提高整个测试用例集的覆盖率时,暂停模糊测试的执行过程,转入后端的符号执行。符号执行模块将最后一次执行的测试用例作为具体输入,抓取ls程序执行该测试用例的执行轨迹。将轨迹文件通过逆向工程提升为某种中间语言,收集本次执行过程的路径约束条件。约束条件关注条件跳转类指令,以ls轨迹文件的中间语言片段图5为例,对于比较指令“cmp$0xffffffff,%ecx”,其含义是比较寄存器ecx的值与立即数0xffffffff的大小,BIL显式表达并计算出该比较指令所影响到的EFlags寄存器中各个标志位的变化,其中零标志位ZF由于两操作数相减结果不为零置为“false”。下一条指令“je 0x000000009d4e403e”为条件转移类指令,当EFflags寄存器的ZF标志位为1时跳转到0x000000009d4e403e地址处继续执行,否则顺序执行接下来的指令。在这里,由于ZF=0,程序没有发生跳转。此时收集到的路径约束条件为“…∧(ECX<-1)∧…”,省略号表示其他约束条件,各个约束条件使用“且”连接。
为构造新的路径约束条件,从而探索到其他新的路径,采用GS算法较为关键的一步是对约束取反。对于图4的约束条件进行取反的结果为:“…∧(ECX<-1)”,(ECX<-1)之后的约束条件舍弃,之前的约束条件保留。由于新的约束条件是对原约束条件取反,使得程序在“je 0x000000009d4e403e”指令处发生跳转,从而探索到程序中新的路径。若本条路径上有n个约束条件,经过一次符号执行后采用GS算法得到第一代的结果,就可以构造n个新的路径约束条件,借助约束求解器进行可满足性判断及约束求解,可以生成覆盖特定路径的具体的测试用例。
将经过符号执行生成的测试用例注入到ls程序中,同样地进行代码覆盖率的监测和计算。最后,继续执行模糊测试。重复该过程。直到达到ls程序的测试需求(如要求达到的覆盖率、执行的测试用例数)时,终止混合模糊测试的执行。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (5)

1.一种面向二进制的混合模糊测试方法,其特征在于包括:
采用模糊测试作为前端处理,其中利用测试用例来驱动被测试程序的执行;
采用二进制代码覆盖率监测处理作为中间层处理,其中在被测试程序的执行过程中,记录被测试程序覆盖的基本块,由此计算模糊测试的覆盖率;
当计算出的模糊测试的覆盖率不再提高时,执行作为后端处理的符号执行处理,在符号执行处理中生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例,然后将新的测试用例反馈至模糊测试,使得模糊测试利用新的测试用例来驱动被测试程序的执行。
2.根据权利要求1所述的面向二进制的混合模糊测试方法,其特征在于,符号执行处理采用动态符号执行技术。
3.根据权利要求1或2所述的面向二进制的混合模糊测试方法,其特征在于,在符号执行处理中,对被测试程序的输入进行符号化处理,抓取当前测试用例的执行轨迹,使用中间语言对轨迹文件进行形式化描述,生成当前路径的约束条件,采用基于代的路径搜索算法对路径约束条件取反,借助约束求解器求解路径约束条件,最终生成覆盖与当前测试用例的路径不同的其它路径的新的测试用例。
4.根据权利要求1或2所述的面向二进制的混合模糊测试方法,其特征在于,模糊测试在接收到从符号执行处理反馈来的新的测试用例之前,利用基于变异的策略生成的测试用例来驱动被测试程序的执行。
5.根据权利要求1或2所述的面向二进制的混合模糊测试方法,其特征在于,所述面向二进制的混合模糊测试方法用于软件安全性测试。
CN201410758900.2A 2014-12-11 2014-12-11 一种面向二进制的混合模糊测试方法 Active CN104375942B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410758900.2A CN104375942B (zh) 2014-12-11 2014-12-11 一种面向二进制的混合模糊测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410758900.2A CN104375942B (zh) 2014-12-11 2014-12-11 一种面向二进制的混合模糊测试方法

Publications (2)

Publication Number Publication Date
CN104375942A true CN104375942A (zh) 2015-02-25
CN104375942B CN104375942B (zh) 2017-02-08

Family

ID=52554877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410758900.2A Active CN104375942B (zh) 2014-12-11 2014-12-11 一种面向二进制的混合模糊测试方法

Country Status (1)

Country Link
CN (1) CN104375942B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699605A (zh) * 2015-03-02 2015-06-10 清华大学 一种驱动程序的代码覆盖率测量方法及装置
CN106155901A (zh) * 2015-04-21 2016-11-23 中国科学院信息工程研究所 黑盒与白盒相结合的执行反馈驱动的并行模糊测试方法
CN106407102A (zh) * 2015-08-03 2017-02-15 腾讯科技(深圳)有限公司 应用程序的模糊测试方法、装置及系统
CN106649075A (zh) * 2015-10-30 2017-05-10 西门子公司 模糊测试方法和装置
TWI617983B (zh) * 2016-12-19 2018-03-11 聯發科技股份有限公司 代碼覆蓋率處理方法
CN108647145A (zh) * 2018-05-10 2018-10-12 清华大学 软件内存安全检测方法及系统
CN108845944A (zh) * 2018-06-28 2018-11-20 中国人民解放军国防科技大学 一种结合符号执行提高软件模糊测试效率的方法
CN109376535A (zh) * 2018-08-14 2019-02-22 中国信息安全测评中心 一种基于智能化符号执行的漏洞分析方法及系统
CN109739755A (zh) * 2018-12-27 2019-05-10 北京理工大学 一种基于程序追踪和混合执行的模糊测试系统
CN109901987A (zh) * 2017-12-11 2019-06-18 北京京东尚科信息技术有限公司 一种生成测试数据的方法和装置
CN109992507A (zh) * 2019-03-22 2019-07-09 北京信息科技大学 基于模拟执行的程序模糊测试方法及装置
US10452526B2 (en) 2017-06-15 2019-10-22 Microsoft Technology Licensing, Llc Machine learning for constrained mutation-based fuzz testing
CN111897733A (zh) * 2020-08-07 2020-11-06 北京理工大学 一种基于最小集合覆盖的模糊测试方法和装置
CN113407443A (zh) * 2021-06-02 2021-09-17 贝格迈思(深圳)科技有限公司 一种基于gpu二进制代码翻译的高效模糊测试方法
CN116541294A (zh) * 2023-05-18 2023-08-04 上海安般信息科技有限公司 一种基于符号执行的模糊测试系统及方法
CN117873908A (zh) * 2024-03-12 2024-04-12 中兴通讯股份有限公司 测试用例确定方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714119A (zh) * 2009-12-09 2010-05-26 北京邮电大学 基于二进制程序的测试数据生成器和方法
CN102508780A (zh) * 2011-11-21 2012-06-20 电子科技大学 一种用于软件测试的交叉式动态法和装置
CN102799529A (zh) * 2012-07-13 2012-11-28 北京航空航天大学 一种动态的二进制代码测试用例生成方法
CN103036730A (zh) * 2011-09-29 2013-04-10 西门子公司 一种对协议实现进行安全测试的方法及装置
CN103116540A (zh) * 2013-01-23 2013-05-22 电子科技大学 基于全局超级块支配图的动态符号执行方法及其装置
WO2014049104A1 (en) * 2012-09-27 2014-04-03 Siemens Aktiengesellschaft A method, apparatus and system for optimizing test cases in fuzz testing
CN103914383A (zh) * 2014-04-04 2014-07-09 福州大学 一种基于多种群协同演化遗传算法的模糊测试系统
CN104008053A (zh) * 2014-05-28 2014-08-27 电子科技大学 一种用于漏洞发掘的动态符号执行路径搜索方法
CN104063325A (zh) * 2014-07-11 2014-09-24 电子科技大学 一种针对嵌入式软件的测试用例自动化生成装置及其方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714119A (zh) * 2009-12-09 2010-05-26 北京邮电大学 基于二进制程序的测试数据生成器和方法
CN103036730A (zh) * 2011-09-29 2013-04-10 西门子公司 一种对协议实现进行安全测试的方法及装置
CN102508780A (zh) * 2011-11-21 2012-06-20 电子科技大学 一种用于软件测试的交叉式动态法和装置
CN102799529A (zh) * 2012-07-13 2012-11-28 北京航空航天大学 一种动态的二进制代码测试用例生成方法
WO2014049104A1 (en) * 2012-09-27 2014-04-03 Siemens Aktiengesellschaft A method, apparatus and system for optimizing test cases in fuzz testing
CN103116540A (zh) * 2013-01-23 2013-05-22 电子科技大学 基于全局超级块支配图的动态符号执行方法及其装置
CN103914383A (zh) * 2014-04-04 2014-07-09 福州大学 一种基于多种群协同演化遗传算法的模糊测试系统
CN104008053A (zh) * 2014-05-28 2014-08-27 电子科技大学 一种用于漏洞发掘的动态符号执行路径搜索方法
CN104063325A (zh) * 2014-07-11 2014-09-24 电子科技大学 一种针对嵌入式软件的测试用例自动化生成装置及其方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104699605B (zh) * 2015-03-02 2017-11-17 清华大学 一种驱动程序的代码覆盖率测量方法及装置
CN104699605A (zh) * 2015-03-02 2015-06-10 清华大学 一种驱动程序的代码覆盖率测量方法及装置
CN106155901B (zh) * 2015-04-21 2019-04-16 中国科学院信息工程研究所 黑盒与白盒相结合的执行反馈驱动的并行模糊测试方法
CN106155901A (zh) * 2015-04-21 2016-11-23 中国科学院信息工程研究所 黑盒与白盒相结合的执行反馈驱动的并行模糊测试方法
CN106407102A (zh) * 2015-08-03 2017-02-15 腾讯科技(深圳)有限公司 应用程序的模糊测试方法、装置及系统
CN106407102B (zh) * 2015-08-03 2020-11-20 腾讯科技(深圳)有限公司 应用程序的模糊测试方法、装置及系统
CN106649075A (zh) * 2015-10-30 2017-05-10 西门子公司 模糊测试方法和装置
TWI617983B (zh) * 2016-12-19 2018-03-11 聯發科技股份有限公司 代碼覆蓋率處理方法
CN108205495A (zh) * 2016-12-19 2018-06-26 联发科技股份有限公司 代码覆盖率处理方法
US10452526B2 (en) 2017-06-15 2019-10-22 Microsoft Technology Licensing, Llc Machine learning for constrained mutation-based fuzz testing
CN109901987A (zh) * 2017-12-11 2019-06-18 北京京东尚科信息技术有限公司 一种生成测试数据的方法和装置
CN108647145B (zh) * 2018-05-10 2020-01-03 清华大学 软件内存安全检测方法及系统
CN108647145A (zh) * 2018-05-10 2018-10-12 清华大学 软件内存安全检测方法及系统
CN108845944A (zh) * 2018-06-28 2018-11-20 中国人民解放军国防科技大学 一种结合符号执行提高软件模糊测试效率的方法
CN108845944B (zh) * 2018-06-28 2021-10-15 中国人民解放军国防科技大学 一种结合符号执行提高软件模糊测试效率的方法
CN109376535A (zh) * 2018-08-14 2019-02-22 中国信息安全测评中心 一种基于智能化符号执行的漏洞分析方法及系统
CN109376535B (zh) * 2018-08-14 2022-03-04 中国信息安全测评中心 一种基于智能化符号执行的漏洞分析方法及系统
CN109739755A (zh) * 2018-12-27 2019-05-10 北京理工大学 一种基于程序追踪和混合执行的模糊测试系统
CN109992507A (zh) * 2019-03-22 2019-07-09 北京信息科技大学 基于模拟执行的程序模糊测试方法及装置
CN109992507B (zh) * 2019-03-22 2022-06-24 北京信息科技大学 基于模拟执行的程序模糊测试方法及装置
CN111897733A (zh) * 2020-08-07 2020-11-06 北京理工大学 一种基于最小集合覆盖的模糊测试方法和装置
CN111897733B (zh) * 2020-08-07 2023-04-07 北京理工大学 一种基于最小集合覆盖的模糊测试方法和装置
CN113407443A (zh) * 2021-06-02 2021-09-17 贝格迈思(深圳)科技有限公司 一种基于gpu二进制代码翻译的高效模糊测试方法
CN116541294A (zh) * 2023-05-18 2023-08-04 上海安般信息科技有限公司 一种基于符号执行的模糊测试系统及方法
CN116541294B (zh) * 2023-05-18 2023-11-17 上海安般信息科技有限公司 一种基于符号执行的模糊测试系统及方法
CN117873908A (zh) * 2024-03-12 2024-04-12 中兴通讯股份有限公司 测试用例确定方法及装置

Also Published As

Publication number Publication date
CN104375942B (zh) 2017-02-08

Similar Documents

Publication Publication Date Title
CN104375942A (zh) 一种面向二进制的混合模糊测试方法
Person et al. Directed incremental symbolic execution
McPhillips et al. YesWorkflow: a user-oriented, language-independent tool for recovering workflow information from scripts
Santelices et al. Exploiting program dependencies for scalable multiple-path symbolic execution
Leino et al. Fine-grained caching of verification results
Yang et al. Advances in symbolic execution
Godboley et al. GECOJAP: A novel source-code preprocessing technique to improve code coverage
Ábrahám et al. Satisfiability checking: Theory and applications
André et al. Formalizing non-concurrent UML state machines using colored Petri nets
Sherman et al. Structurally defined conditional data-flow static analysis
Lin et al. A priority based path searching method for improving hybrid fuzzing
Slaby et al. Compact symbolic execution
Wang et al. Smart contract vulnerability detection for educational blockchain based on graph neural networks
Bardin et al. Binary-level testing of embedded programs
Biondi et al. BinCAT: purrfecting binary static analysis
Arndt et al. Let this graph be your witness! an attestor for verifying Java pointer programs
Mattsen et al. A non-convex abstract domain for the value analysis of binaries
Vidal Concolic execution and test case generation in Prolog
CN112162932B (zh) 一种基于线性规划预测的符号执行优化方法及装置
Gao et al. LLSPLAT: improving concolic testing by bounded model checking
Robbins et al. Theory propagation and reification
JPWO2017204139A1 (ja) データ処理装置、データ処理方法、およびプログラム記録媒体
Grieco et al. A stack model for symbolic buffer overflow exploitability analysis
Chen et al. Learning-oriented property decomposition for automated generation of directed tests
Lindner et al. Proof-producing symbolic execution for binary code verification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant