CN116541280B - 一种基于神经网络的模糊测试用例生成方法 - Google Patents
一种基于神经网络的模糊测试用例生成方法 Download PDFInfo
- Publication number
- CN116541280B CN116541280B CN202310502110.7A CN202310502110A CN116541280B CN 116541280 B CN116541280 B CN 116541280B CN 202310502110 A CN202310502110 A CN 202310502110A CN 116541280 B CN116541280 B CN 116541280B
- Authority
- CN
- China
- Prior art keywords
- path
- program
- executed
- model
- use case
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 14
- 238000010276 construction Methods 0.000 claims abstract description 23
- 238000012549 training Methods 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 19
- 230000006835 compression Effects 0.000 claims abstract description 16
- 238000007906 compression Methods 0.000 claims abstract description 16
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 238000013519 translation Methods 0.000 claims abstract description 8
- 238000003062 neural network model Methods 0.000 claims description 15
- 238000001914 filtration Methods 0.000 claims 1
- 238000013522 software testing Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000035772 mutation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000005065 mining Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及软件测试技术领域,具体地说是一种基于神经网络的模糊测试用例生成方法,总体框架包括数据预处理、路径构建、路径压缩、模型训练和用例生成,数据处理阶段包括程序基本信息构建,数据处理和未执行路径的生成,模型搭建和使用沿用机器翻译领域的模型结构,通过拼接已执行路径的方法构建未执行路径,与固定值相减和转换字符串表示方式进行压缩路径信息,减轻模型训练任务,本发明同现有技术相比,通过改进用例的高结构化,构建新的未执行路径以及利用神经网络拟合程序路径与用例的关联性,通过模型学习程序路径与用例的对应关系,进行新用例生成,极大提高了用例的真实性,整体极大提升了对于软件测试效率和漏洞发现率。
Description
技术领域
本发明涉及软件测试技术领域,具体地说是一种基于神经网络的模糊测试用例生成方法。
背景技术
模糊测试是一种通过向目标***或软件提供非预期的输入并监视异常结果来发现软件漏洞的方法,由于模糊测试技术可以将大量的手工测试转化为高度的自动化测试,介于黑盒测试和白盒测试之间,因此在国内外漏洞挖掘领域被广泛使用。
模糊测试包括有测试用例,基本块,路径信息和程序分支。
测试用例是模糊测试对象的输入内容,例如字符、图片、音频、视频等文件。用例的生成策略决定了模糊测试的测试效率,较好的用例可以覆盖被检测程序的更多路径,从而检测出更多的程序漏洞。
模糊测试用例生成方法可以分为两种,一种是基于生成的用例生成方法,一种是基于变异的用例生成方法。基于生成的方法是通过对具体的待测程序自身或行为进行建模,根据规范构造用例。这些基于模型的或基于语法的模糊测试用例生成方法可以生成容易通过完整性检查(例如,校验和)或语法检查的输入。基于变异的方法是通过修改格式良好的用例来生成新的用例。这些基于变异的方法可以有效地测试具有紧凑和非结构化数据格式(例如图像和视频)的程序。
基本块是程序中的一条或数条指令的组合,程序执行到某个基本块时,会从该基本块的第一条指令开始执行,然后依次执行块中的其他指令,直到最后一条指令执行完毕。程序中的路径即由一个或多个基本块来构成。
路径信息是一条路径信息中包括一个或多个基本块,以及这些基本块的执行顺序。
程序分支是设定符号branch表示程序控制流图中两个基本块之间的一条边,该边在模糊测试中称为一条程序分支,程序分支一般包括条件跳转分支、非条件直接跳转分支、间接分支、就近返回分支和长跳转分支等,在现有基于变异的模糊测试中分支主要用于判断程序执行的覆盖情况。
虽然在很多场景下模糊测试可以有效地发现漏洞,其仍存在以下三方面局限性:
现有基于变异的模糊测试虽然能够通过变异对非结构化的用例进行高效测试,但是由于其不能很好地支持文件格式语法,因而在测试一些处理高结构化用例的目标二进制程序时便有些不足。
虽然基于符号执行的模糊测试能够通过约束求解的方式生成能够触发程序中含有约束条件的程序分支,但由于部分约束条件过于复杂,导致无法进行求解。
现有大部分模糊测试技术对于程序路径与用例之间一一对应的关系没有进行关联性挖掘,导致基于变异的模糊测试局限于程序部分路径的测试,使得测试的路径覆盖率较低,进而影响了对潜在漏洞的挖掘。
因此,为了解决上述问题,本申请提出了一种基于神经网络的模糊测试用例生成方法,利用机器翻译领域经典的神经网络模型实现用例的生成,可高效辅助对二进制程序的进行模糊测试。
发明内容
本发明的目的是克服现有技术的不足,提供了一种基于神经网络的模糊测试用例生成方法,利用机器翻译领域经典的神经网络模型实现用例的生成,可高效辅助对二进制程序的进行模糊测试。
为了达到上述目的,本发明提供一种基于神经网络的模糊测试用例生成方法,包括以下步骤:
S1,总体框架,包括数据预处理、路径构建、路径压缩、模型训练和用例生成;
数据预处理是模糊测试执行后获得的有效用例队列和已执行路径集,输出是转码后的用例和程序已执行分支;
路径构建是目标程序和数据预处理阶段得到的已执行分支,输出是拼接构建好的未执行路径;
路径压缩是模糊测试生成的用例、模糊测试已执行的程序路径和路径构建得到的未执行路径,输出是经压缩处理后的已执行路径与用例构建的训练数据对和压缩处理后的未执行路径;
模型训练是路径与用例对,路径作为模型的输入、用例作为模型的输出,输出是训练得到的模型;
用例生成是经压缩后的未执行路径,输出是可用于辅助模糊测试的待验证用例队列;
S2,数据处理阶段,包括程序基本信息构建,数据处理和未执行路径的生成;
程序基本信息构建具体为:
S2-1,利用现有的二进制程序动态分析工具获取程序的控制流信息,控制流信息中包含进入程序主体之前的初始化部分,初始化部分对于能够正常执行的程序而言是必须执行的,为了减小空间开销,将main函数之前的基本块进行过滤;
S2-2,设定一个用于存储程序的已执行分支的字典,字典的键为当前基本块id,字典的值为当前基本块的后继基本块集;另外设定是一个用于存储程序已执行基本块的集合;
数据处理具体为:
依次遍历程序已执行路径和模糊测试生成的有效用例进行数据处理;
S2-3,依次构建程序已执行分支和基本块,用于后续未执行路径的构建,同时保存程序路径中当前基本块的前趋序列和后继序列;
S2-4,依次将用例和程序路径转化为神经网络模型便于处理的数据,选择将用例字节字符串转化为整数字符串、程序地址由十六进制字符串转化为十进制字符串;
未执行路径的生成具体为:
依次遍历程序已执行的基本块,在程序所有分支中查找未执行的分支;S2-5,获取当前基本块的后继基本块集;
S2-6,判断后继基本块是否在已执行基本块中;
S2-7,若S2-6不在已执行基本块中,则忽略该后继基本块;
S2-8,若S2-6在已执行基本块中,则判断分支是否已经被执行;
S2-9,若S2-8没有被执行,表明发现了新分支,将该分支保存的新分支集合中,并拼接新分支的前趋序列和后继序列,生成新的未执行路径;
S3,模型搭建和使用,沿用机器翻译领域的seq2seq模型结构,seq2seq模型结构包括一个嵌入层、两个隐藏层和一个投影层,为了避免在解码长路径时模型将注意力分散在所有源输入序列上,添加注意力机制;
S3-1,输入序列为压缩后的程序路径,单个词表示基本块的相对地址;输出序列为按单字节转码的用例序列,单个词表示字节转码为0-255的整数;
S3-2,使用数据处理阶段构建的路径用例数据集,通过训练得到用例生成模型;
S3-3,在神经网络模型完成搭建和训练之后,需要将构建的程序未执行路径输入到模型进行用例生成;
S3-31,为了使模糊测试能够调用模型生成的用例,可以创建一个用于存储模型生成用例的存储空间;
S3-32,依次遍历程序未执行路径,将当前选择的未执行路径输入到训练好的模型中,以生成新的用例;
S3-33,由于模型生成的用例中存在序列完全相同的用例,判断生成的用例是否已经被生成;
若S3-33中生成的用例没有被生成,则将其添加到待验证用例队列,否则直接丢弃,避免存储相同的用例。
本发明同现有技术相比,具备以下有益效果:
改进了高结构化用例的生成,提高了针对处理高结构化用例的二进制程序的模糊测试效率;利用拼接已执行分支的方法构建新的未执行路径,解决了部分路径无法通过约束求解获得的问题;创造性地提出将程序路径和用例看做是两种表现程序行为的特殊语言,利用翻译领域常用的神经网络去拟合程序路径与用例之间一一对应的关系,然后利用未执行路径生成新用例,构建字典或与固定值相减的方式进行压缩路径信息,减轻模型训练任务,辅助模糊测试提升了测试效果。
附图说明
图1为本发明基于神经网络的模糊测试用例生成***框架示意图。
图2为本发明未执行路径的生成构建示意图。
图3为本发明神经网络模型示意图。
具体实施方式
现结合附图对本发明做进一步描述。
参见图1~3,本发明提供一种基于神经网络的模糊测试用例生成方法,针对模糊测试执行目标程序得到的路径和用例,旨在利用机器翻译领域经典的神经网络模型(如seq2seq)挖掘程序路径与用例之间的关系,最终实现新用例的生成。
该***主要包括五个阶段(如图1所示),分别是数据预处理、路径构建、路径压缩、模型训练和用例生成,其中数据预处理阶段的输入是模糊测试执行后获得的有效用例队列和已执行路径集,输出是转码后的用例和程序已执行分支。
路径构建阶段的输入是目标程序和数据预处理阶段得到的已执行分支,输出是拼接构建好的未执行路径。
路径压缩阶段的输入是模糊测试生成的用例、模糊测试已执行的程序路径和路径构建得到的未执行路径,输出是经压缩处理后的已执行路径与用例构建的训练数据对和压缩处理后的未执行路径。
模型训练阶段的输入是路径与用例对(路径作为模型的输入、用例作为模型的输出),输出是训练得到的模型。
用例生成阶段的输入是经压缩后的未执行路径,输出是可用于辅助模糊测试的待验证用例队列。
具体而言,五个阶段的主要任务包括:
阶段1:数据预处理,在模糊测试执行一段时间后,基于神经网络的用例生成部分开始执行,首先从模糊测试中加载其执行的程序路径和用例,其次将获取到的用例以字节为单位转换成0-255的整数序列,之后将已执行路径的公共前趋序列全部删除,因为这些基本块大多位于main函数之前,最后将已执行路径转化为程序分支形式提供给阶段2进行路径构建。
阶段2:路径构建,当程序已执行分支加载进来之后,路径构建模块首先利用动态分析工具加载目标二进制程序,以生成程序的控制流信息,其次利用控制流信息生成程序的所有分支,之后基于程序的所有分支,从已执行基本块中构建未执行的新分支,最后基于新分支,以拼接已执行路径的方式构建新路径。
阶段3:路径压缩,模糊测试过程中程序追踪到的和动态分析生成的基本块地址存在相同的前缀,如图中的0x40,这些相同的前缀并不会造成用例的不同,反而会加重神经网络模型的训练任务,因此可以通过构建字典或与固定值相减的方式进行压缩,如main函数地址、程序代码段的首地址等。
阶段4:模型训练,在模型训练时,首先构建输入和输出序列的单词字典,虽然程序路径和用例均以整数形式表现,但取值范围不一定相同,因此需要构建两个单词字典,其次将输入序列和输出序列同时输入到编码层,开始中间状态向量的迭代更新,最后将每轮训练得到的模型和此过程中最好的模型存储到硬盘,供用例生成使用。
阶段5:用例生成,将阶段2构建的未执行路径依次输入到训练好的模型之中,以生成对应的用例,如果新生成的用例与过去生成的用例不相同,则将其保存到待验证用例队列,否则直接丢弃。
上述5个阶段中,最为关键的是阶段2的路径构建。如果直接使用动态分析工具生成的控制流信息构建程序所有路径,会导致生成的路径中包含大量不存在于训练数据中的基本块,导致模型使用时发生“无中生有现象”;如果直接依赖程序所有分支和已执行基本块构建程序所有路径,会生成大量不可达路径。
2)数据处理
在基于神经网络的模糊测试用例生成方案中,其关键内容是程序未执行路径的构建,在构建过程中既要避免不可达路径的生成,又要兼顾神经网络模型不能“无中生有”,即无法利用不存于训练词典中的基本块地址去生成新的用例,因此数据处理包括程序基本信息构建、数据预处理和未执行路径生成三个部分。
①程序基本信息构建
首先,利用现有的二进制程序动态分析工具获取程序的控制流信息,由于控制流信息中会包含进入程序主体之前的初始化部分,但这些部分对于能够正常执行的程序而言是必须执行的,因此为了减小空间开销,需要将main函数之前的基本块进行过滤。其次,设定一个用于存储程序的已执行分支的字典,其中字典的键为当前基本块id,字典值为当前基本块的后继基本块集;另外设定是一个用于存储程序已执行基本块的集合。
②数据处理
在此过程中,依次遍历程序已执行路径和模糊测试生成的有效用例进行数据出路。首先,依次构建程序已执行分支和基本块,用于后续未执行路径的构建,同时保存程序路径中当前基本块的前趋序列和后继序列,如图2(a)所示,在路径p1中,基本块b3的前趋序列是(b1),后继序列是(b5,b8,b9),这些前趋和后继序列将用于后续未执行路径的拼接;然后,依次将用例和程序路径转化为神经网络模型便于处理的数据,可选择将用例字节字符串转化为整数字符串、程序地址由十六进制字符串转化为十进制字符串。
③未执行路径的生成
在此过程中,依次遍历程序已执行的基本块,在程序所有分支中查找未执行的分支。具体而言,首先获取当前基本块b1的后继基本块集,然后判断后继基本块b2是否在已执行基本块中,如果不在则忽略该后继基本块,这样可以避免让神经网络模型进行“无中生有”;如果在已执行基本块中,则判断分支(b1,b2)是否已经被执行,如果没有被执行,表明发现了新分支,则将(b1,b2)保存的新分支集合中,并拼接新分支b1的前趋序列和b2的后继序列,生成新的未执行路径。
具体而言,假设存在图2(b)所示的程序控制流图,图中所有基本块都已经被执行,但虚线所示的分支(b3,b4)和路径(b1,b3,b4,b7,b9)并没有被执行,根据前述方法,会将b3的前趋序列和,b4的后继序列进行拼接形成新的未执行路径,具体拼接方式如图2(c)所示。特别地,由于直接拼接所有已执行分支和新分支的方式会生成大量不可达路径,因此本文采用拼接前趋和后继序列的方式构建新路径,这样可以减少程序不可达路径的生成。
3)模型搭建和使用
对于神经网络模型的设计可沿用机器翻译领域经典的seq2seq模型结构,如图3所示,seq2seq模型可以设计为1个嵌入层、2个隐藏层和1个投影层,同时,为了避免在解码较长路径时模型将注意力分散在所有源输入序列上,需要添加注意力机制。特别地,图中输入序列为压缩后的程序路径,单个词表示基本块的相对地址;输出序列为按单字节转码的用例序列,单个词表示字节转码为0-255的整数。然后使用数据处理阶段构建的<路径,用例>数据集,通过训练得到用例生成模型。
上文使用的Seq2seq是一种具体代码实现中可选项,其他满足要求的神经网络模型也可以使用。
在神经网络模型完成搭建和训练之后,需要将构建的程序未执行路径输入到模型进行用例生成。首先,为了使模糊测试能够调用模型生成的用例,可以创建一个用于存储模型生成用例的存储空间。其次,依次遍历程序未执行路径,将当前选择的未执行路径p输入到训练好地模型中,以生成新的用例;此外,由于模型生成的用例中可能存在序列完全相同的用例,因此需要判断生成的用例是否已经被生成,如果没有,则将其添加到待验证用例队列,否则直接丢弃,避免存储相同的用例。
以上仅是本发明的优选实施方式,只是用于帮助理解本申请的方法及其核心思想,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
本发明从整体上解决了现有技术不支持文件格式语法,约束条件过于复杂以及没有对程序路径和用例进行关联性挖掘的问题,通过改进用例的高结构化,构建新的未执行路径以及利用神经网络拟合程序路径与用例的关联性,通过模型学习程序路径与用例的对应关系,进而生成新的用例,使用时通过拼接真实路径的方式构建新路径作为模型输入,极大提高了样本的真实性,整体极大提升了对于软件漏洞的发现率和检测效率。
Claims (1)
1.一种基于神经网络的模糊测试用例生成方法,其特征在于,包括以下步骤:
S1,总体框架,包括数据预处理、路径构建、路径压缩、模型训练和用例生成;
所述数据预处理是以模糊测试执行后获得的有效用例队列和已执行路径集为输入,输出是转码后的用例和程序已执行分支;
所述路径构建是以目标程序和数据预处理阶段得到的已执行分支为输入,输出是拼接构建好的未执行路径;
所述路径压缩是以模糊测试生成的用例、模糊测试已执行的程序路径和路径构建得到的未执行路径为输入,经压缩处理后输出为已执行路径与用例构建的路径用例对数据集和压缩处理后的未执行路径集;
所述模型训练是以路径用例对为输入,输出是训练得到的模型;
所述用例生成是以经压缩后的未执行路径为输入,输出是用于辅助模糊测试的待验证用例队列;
S2,数据处理阶段,包括程序基本信息构建,数据处理和未执行路径的生成;
所述程序基本信息构建具体为:
S2-1,利用现有的二进制程序动态分析工具获取程序的控制流信息,所述控制流信息中包含进入程序主体之前的初始化部分,所述初始化部分对于能够正常执行的程序而言是必须执行的,为了减小空间开销,将main函数之前的基本块进行过滤;
S2-2,设定一个用于存储程序的已执行分支的字典,所述字典的键为当前基本块id,所述字典的值为当前基本块的后继基本块集;另外设定是一个用于存储程序已执行基本块的集合;
所述数据处理具体为:
依次遍历程序已执行路径和模糊测试生成的有效用例进行数据处理;S2-3,依次构建程序已执行分支和基本块,用于后续未执行路径的构建,同时保存程序路径中当前基本块的前趋序列和后继序列;
S2-4,依次将用例和程序路径转化为神经网络模型便于处理的数据,选择将用例字节字符串转化为整数字符串、程序地址由十六进制字符串转化为十进制字符串;
所述未执行路径的生成具体为:
依次遍历程序已执行的基本块,在程序所有分支中查找未执行的分支;S2-5,获取当前基本块的后继基本块集;
S2-6,判断后继基本块是否在已执行基本块中;
S2-7,若所述S2-6不在已执行基本块中,则忽略该后继基本块;
S2-8,若所述S2-6在已执行基本块中,则判断分支是否已经被执行;
S2-9,若所述S2-8没有被执行,表明发现了新分支,将该分支保存到新分支集合中,并拼接新分支的前趋序列和后继序列,生成新的未执行路径;
S3,模型搭建和使用,沿用机器翻译领域的seq2seq模型结构,所述seq2seq模型结构包括一个嵌入层、两个隐藏层和一个投影层,为了避免在解码长路径时模型将注意力分散在所有源输入序列上,添加注意力机制;
S3-1,输入序列为压缩后的程序路径,单个词表示基本块的相对地址;输出序列为按单字节转码的用例序列,单个词表示字节转码为0-255的整数;
S3-2,使用路径压缩阶段构建的路径用例对数据集,通过训练得到用例生成模型;
S3-3,在神经网络模型完成搭建和训练之后,需要将构建的程序未执行路径输入到模型进行用例生成;
S3-31,为了使模糊测试能够调用模型生成的用例,创建一个用于存储模型生成用例的存储空间;
S3-32,依次遍历程序未执行路径,将当前选择的未执行路径输入到训练好的模型中,以生成新的用例;
S3-33,由于模型生成的用例中存在序列完全相同的用例,判断生成的用例是否已经被生成;
若所述S3-33中生成的用例没有被生成,则将其添加到待验证用例队列,否则直接丢弃,避免存储相同的用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310502110.7A CN116541280B (zh) | 2023-05-06 | 2023-05-06 | 一种基于神经网络的模糊测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310502110.7A CN116541280B (zh) | 2023-05-06 | 2023-05-06 | 一种基于神经网络的模糊测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116541280A CN116541280A (zh) | 2023-08-04 |
CN116541280B true CN116541280B (zh) | 2023-12-26 |
Family
ID=87450030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310502110.7A Active CN116541280B (zh) | 2023-05-06 | 2023-05-06 | 一种基于神经网络的模糊测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541280B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025175A (zh) * | 2017-05-12 | 2017-08-08 | 北京理工大学 | 一种模糊测试种子用例变长字段修剪方法 |
CN108416219A (zh) * | 2018-03-18 | 2018-08-17 | 西安电子科技大学 | 一种Android二进制文件漏洞检测方法及*** |
CN109002723A (zh) * | 2018-07-24 | 2018-12-14 | 北京理工大学 | 一种分段式符号执行方法 |
CN109739755A (zh) * | 2018-12-27 | 2019-05-10 | 北京理工大学 | 一种基于程序追踪和混合执行的模糊测试*** |
CN111767546A (zh) * | 2020-06-17 | 2020-10-13 | 北京理工大学 | 一种基于深度学习的输入结构推断方法和装置 |
CN112925710A (zh) * | 2021-02-26 | 2021-06-08 | 西南民族大学 | 一种基于梯度下降优化的模糊测试方法 |
CN114064506A (zh) * | 2021-11-29 | 2022-02-18 | 电子科技大学 | 一种基于深度神经网络的二进制程序模糊测试方法及*** |
CN115328803A (zh) * | 2022-09-02 | 2022-11-11 | 北京信息科技大学 | 一种映射关系制导的循环代码模糊测试方法 |
CN115543763A (zh) * | 2021-06-29 | 2022-12-30 | 中国电子技术标准化研究院 | 基于生成对抗网络的测试用例生成方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8387016B2 (en) * | 2009-05-01 | 2013-02-26 | Microsoft Corporation | Whitebox trace fuzzing |
US10452526B2 (en) * | 2017-06-15 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning for constrained mutation-based fuzz testing |
US10394694B2 (en) * | 2018-01-15 | 2019-08-27 | Fujitsu Limited | Unexplored branch search in hybrid fuzz testing of software binaries |
DE102020213890A1 (de) * | 2020-11-04 | 2022-05-05 | Robert Bosch Gesellschaft mit beschränkter Haftung | Computerimplementiertes Verfahren und Vorrichtung zur Auswahl einer Fuzzing-Methode zum Testen eines Programmcodes |
-
2023
- 2023-05-06 CN CN202310502110.7A patent/CN116541280B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025175A (zh) * | 2017-05-12 | 2017-08-08 | 北京理工大学 | 一种模糊测试种子用例变长字段修剪方法 |
CN108416219A (zh) * | 2018-03-18 | 2018-08-17 | 西安电子科技大学 | 一种Android二进制文件漏洞检测方法及*** |
CN109002723A (zh) * | 2018-07-24 | 2018-12-14 | 北京理工大学 | 一种分段式符号执行方法 |
CN109739755A (zh) * | 2018-12-27 | 2019-05-10 | 北京理工大学 | 一种基于程序追踪和混合执行的模糊测试*** |
CN111767546A (zh) * | 2020-06-17 | 2020-10-13 | 北京理工大学 | 一种基于深度学习的输入结构推断方法和装置 |
CN112925710A (zh) * | 2021-02-26 | 2021-06-08 | 西南民族大学 | 一种基于梯度下降优化的模糊测试方法 |
CN115543763A (zh) * | 2021-06-29 | 2022-12-30 | 中国电子技术标准化研究院 | 基于生成对抗网络的测试用例生成方法及装置 |
CN114064506A (zh) * | 2021-11-29 | 2022-02-18 | 电子科技大学 | 一种基于深度神经网络的二进制程序模糊测试方法及*** |
CN115328803A (zh) * | 2022-09-02 | 2022-11-11 | 北京信息科技大学 | 一种映射关系制导的循环代码模糊测试方法 |
Non-Patent Citations (2)
Title |
---|
LAFuzz: Neural Network for Efficient Fuzzing;Wang Xiajing el;2020 IEEE 32ND INTERNATIONAL CONFERENCE ON TOOLS WITH ARTIFICIAL INTELLIGENCE (ICTAI);603-611 * |
覆盖率导向的模糊测试关键技术研究;王允超;《中国博士学位论文全文数据库 信息科技辑》(第2022年04期期);I138-19 * |
Also Published As
Publication number | Publication date |
---|---|
CN116541280A (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639344B (zh) | 一种基于神经网络的漏洞检测方法及装置 | |
CN110609693B (zh) | 基于数据标准化的代码更新方法、装置及终端设备 | |
US7549146B2 (en) | Apparatus, systems, and methods for execution-driven loop splitting and load-safe code hosting | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
CN113296786B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN107678748A (zh) | 一种源代码文件编译方法及装置 | |
WO2021175053A1 (zh) | 一种在虚拟机中执行功能模块的方法和装置 | |
JP4951416B2 (ja) | プログラム検証方法、プログラム検証装置 | |
CN110990058A (zh) | 软件相似性度量方法及装置 | |
CN110780879A (zh) | 一种基于智能编译技术的决策执行方法、装置、设备及介质 | |
US7500229B2 (en) | Program converting method and storage medium | |
US20190187973A1 (en) | Method and system for updating legacy software | |
US20060130008A1 (en) | Model-to-model transformation by kind | |
CN116305131B (zh) | 脚本静态去混淆方法及*** | |
CN114115884B (zh) | 一种编程服务的管理方法以及相关装置 | |
CN116541280B (zh) | 一种基于神经网络的模糊测试用例生成方法 | |
US11349908B2 (en) | Generating templates for deployment of system services | |
CN115688108B (zh) | 一种webshell静态检测方法及*** | |
WO2004051470A1 (ja) | プログラム自動変換方法およびプログラム自動変換装置 | |
CN114707151B (zh) | 一种基于api调用和网络行为的僵尸软件检测方法 | |
CN110826074A (zh) | 一种应用漏洞检测方法、装置和计算机可读存储介质 | |
CN113821211B (zh) | 命令解析方法、装置、存储介质和计算机设备 | |
CN117009972A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN115022312A (zh) | 多智能合约引擎的实现方法、装置、电子设备及存储介质 | |
CN110727428B (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 |