CN111400165A - 一种基于前向探针的离线符号执行路径搜索方法 - Google Patents
一种基于前向探针的离线符号执行路径搜索方法 Download PDFInfo
- Publication number
- CN111400165A CN111400165A CN202010085873.2A CN202010085873A CN111400165A CN 111400165 A CN111400165 A CN 111400165A CN 202010085873 A CN202010085873 A CN 202010085873A CN 111400165 A CN111400165 A CN 111400165A
- Authority
- CN
- China
- Prior art keywords
- state transition
- sample
- new state
- new
- symbol execution
- 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.)
- Withdrawn
Links
Images
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/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于前向探针的离线符号执行路径搜索方法,当模糊测试工具产生的样本无法遍历新的状态转移时,算法会调用符号执行引擎选取一个队列中的样本,沿着样本执行轨迹从程序入口开始逐个翻转分支点并且尝试求解能够遍历分支点的另一条边的样本,若发现了新的状态转移,即没有被符号执行遍历过,也没有被模糊测试遍历过,则返回真,否则会创建一个动态符号执行探针继续向前执行,若有限步之内没有发现新的状态转移,则返回假。本发明可以提高符号执行技术与模糊测试技术结合算法的覆盖率,准确度较高,提高了遍历新的状态转移的速度,并且对测试效率影响很小;解决了已有算法对于翻转后不能立即产生新的状态转移的分支点不进行约束求解的问题。
Description
技术领域
本发明属于软件安全测试技术领域,尤其涉及一种基于前向探针的离线符号执行路径搜索方法。
背景技术
模糊测试工具通过随机变异的方法来产生大量的畸形样本对程序进行压力测试,并且监控畸形样本能否触发程序崩溃或异常。但是,大多数通过变异产生的样本难以通过程序内部的复杂检查,从而导致无法发现程序深层的漏洞。符号执行工具虽然理论上可以提高测试覆盖率,但是由于路径爆炸问题限制了其分析的路径深度。
为了发挥模糊测试技术与符号执行技术各自的优势,并且弥补各自的不足,DrillerCore路径搜索算法(Stephens N,Grosen J,Salls C,et al.Driller:AugmentingFuzzing Through Selective Symbolic Execution[C]//NDSS.2016,16(2016):1-16.)将两者相结合,利用符号执行引擎的求解优势来辅助模糊测试工具通过程序中的复杂检查。例如,命令解析程序从用户读取命令字符串,将其与程序内置的命令列表进行比较,并将用户提供的参数传递给对应的命令处理函数。在这种情况下,复杂的检查就是命令字符串的比较,但是模糊随机变异输入将有非常小的概率发送正确的命令字符串。当模糊测试工具产生的样本无法遍历到新的状态转移时,算法会调用符号执行引擎来产生新的样本。符号执行引擎能够求解出正确的命令字符串之后,调用模糊测试工具来变异命令参数,而不会遇到路径爆炸。
但是该算法会导致有些控制流依赖的状态转移无法被遍历。因为有些分支点被翻转以后虽然无法立即产生新的状态转移,但是会间接影响该分支点之后的状态转移。如果程序中有较长的命令字符串匹配,仅仅依靠随机变异很难满足约束条件,所以很快模糊测试方法就无法发现新的状态转移。复杂分支的约束只能依靠符号执行引擎来进行求解,但是算法对于翻转后没有新的状态转移的分支点的约束条件不进行求解,即无法发挥符号执行引擎的求解优势。
发明内容
本发明针对DrillerCore路径搜索算法对于翻转后不能立即产生新的状态转移的分支点不进行约束求解,只看眼前利益的路径搜索算法会导致控制依赖于该分支点的状态转移无法被遍历的问题,提出一种基于前向探针的离线符号执行路径搜索方法。
为了实现上述目的,本发明采用以下技术方案:
一种基于前向探针的离线符号执行路径搜索方法,包括:
步骤1:对程序使用模糊测试工具进行分析,将模糊测试工具产生的能够遍历新的状态转移的样本作为下一代变异的种子样本;
步骤2:当步骤1中产生的样本无法遍历新的状态转移时,符号执行引擎从样本队列中选取一个样本生成离线符号执行轨迹;
步骤3:将步骤2中生成的离线符号执行轨迹从程序入口开始逐个翻转分支点,并创建一个动态符号执行探针作为前向探针沿着翻转状态向前探测该分支点是否影响后续分支的跳转,同时探测附近是否有新的状态转移;
步骤4:如果步骤3中分支点在翻转时发现新的状态转移,或者前向探针探测到该分支点附近有新的状态转移,则尝试对翻转状态进行约束求解;
步骤5:如果步骤4中翻转状态可解,则将产生的新样本加入到模糊测试样本队列中,将翻转状态加入到已遍历集合中;
步骤6:继续沿着步骤5中的翻转状态执行下一步,直到离线符号执行轨迹的最后一个分支点结束;
步骤7:将步骤6中继续执行求解生成的样本集合作为模糊测试的种子样本,继续执行模糊测试,以遍历到新的状态转移。
进一步地,所述模糊测试工具为AFL。
进一步地,所述符号执行引擎为angr。
进一步地,在所述步骤3之前,还包括:从AFL测试目录中读取状态转移数组,来同步AFL已经遍历的状态空间。
进一步地,所述前向探针按照如下方式进行探测:前向探针从翻转状态开始向前符号执行,每执行一步,检测发现的状态转移是否为新,若是则返回真,若否则继续进行符号执行,一直执行N步;其间若发现新的状态转移,返回真,若向前执行N步亦没有发现新的状态转移,返回假。
与现有技术相比,本发明具有的有益效果:
1.本发明针对DrillerCore路径搜索算法对于翻转后不能立即产生新的状态转移的分支点不进行约束求解,只看眼前利益的路径搜索算法会导致控制依赖于该分支点的状态转移无法被遍历的问题,利用前向探针来探测分支点之后的若干步之内是否存在还没有遍历过的状态转移来提高路径搜索算法覆盖率。若前向探针探测到新的状态转移,则重复翻转该分支点,从而提高后续新的状态转移被遍历的机会。
2.本发明对于前向探针探测到的新的状态转移,结合在线符号执行技术进行多路径探索,从而提高遍历新的状态转移的速度。
附图说明
图1为本发明实施例一种基于前向探针的离线符号执行路径搜索方法的基本流程图;
图2为本发明实施例一种基于前向探针的离线符号执行路径搜索方法的测试示例图;
图3为本发明实施例一种基于前向探针的离线符号执行路径搜索方法的覆盖率曲线图;
图4为本发明实施例一种基于前向探针的离线符号执行路径搜索方法的单个样本的离线符号执行时间图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
如图1所示,一种基于前向探针的离线符号执行路径搜索方法,包括:
步骤S101:对程序使用模糊测试工具进行分析,将模糊测试工具产生的能够遍历新的状态转移的样本作为下一代变异的种子样本;
步骤S102:当步骤S101中产生的样本无法遍历新的状态转移时,符号执行引擎从样本队列中选取一个样本生成离线符号执行轨迹;
步骤S103:将步骤S102中生成的离线符号执行轨迹从程序入口开始逐个翻转分支点,并创建一个动态符号执行探针作为前向探针沿着翻转状态向前探测该分支点是否影响后续分支的跳转,同时探测附近是否有新的状态转移;
步骤S104:如果步骤S103中分支点在翻转时发现新的状态转移,或者前向探针探测到该分支点附近有新的状态转移,则尝试对翻转状态进行约束求解;
步骤S105:如果步骤S104中翻转状态可解,则将产生的新样本加入到模糊测试样本队列中,将翻转状态加入到已遍历集合中;通过步骤S105可以保证每次调用符号执行引擎进行求解产生的样本都可以遍历新的状态转移,有利于快速提高覆盖率,从而提高符号执行的效率;
步骤S106:继续沿着步骤S105中的翻转状态执行下一步,直到离线符号执行轨迹的最后一个分支点结束;
步骤S107:将步骤S106中继续执行求解生成的样本集合作为模糊测试的种子样本,继续执行模糊测试,以遍历到新的状态转移。
具体地,所述模糊测试工具为AFL。AFL通过插桩的方法来获得覆盖率信息。AFL中规定的状态转移,就是链接两个基本块的边。状态空间用一个状态转移数组表示,以状态转移值为索引,数组元素值表示该状态转移的命中个数,每遍历一次计数增一。比如,有两条路径A->B->C->D->E和A->B->D->C->E,虽然这两条路径遍历的基本块一样,但是这两条路径的状态转移数组不同,因此标记为两条不同的路径。模糊测试工具产生的能够遍历新的状态转移的样本,会被当做优质样本,用做下一代变异的种子。
具体地,所述符号执行引擎为angr。符号执行引擎angr对AFL样本队列中的样本进行离线符号执行。符号执行引擎将输入符号化,并且将二进制程序转换成中间语言再解释执行。在程序执行过程中进行符号传播,并且收集约束条件。
具体地,在所述步骤S103之前,还包括:从AFL测试目录中读取状态转移数组,来同步AFL已经遍历的状态空间。由于符号执行引擎与模糊测试工具之间共享状态空间,所以在符号执行引擎测试之前,需要从AFL测试目录中读取状态转移数组,来同步AFL已经遍历的状态空间。这样做是为了防止符号执行引擎重复求解AFL已经遍历过的状态转移。
具体地,一种基于前向探针的离线符号执行路径搜索方法算法流程如下所示:
FB-SA算法的设计思路是:对于翻转后的状态转移已经被遍历过的分支点(即重复遍历的分支点),该算法会再创建一个符号执行探针沿着这个翻转状态向前符号执行若干步,同时检测附近是否存在新的状态转移;若在分支点附近探测到新的状态转移,则重新翻转这个分支点并进行约束求解生成新的样本。该算法基于动态程序分析的方法来识别前一个分支点对后续状态转移的影响,而不是依靠静态分析,有利于提高效率和准确性。
若分支点被翻转后发现新的状态转移S1->S3,或者前向探针探测到附近有新的状态转移(即ForwardProbe(S3)函数返回真),则对翻转状态S3进行约束求解。对于测试例E(如图2所示),FB-SA算法发现3→2状态转移已经被遍历过时,会创建一个动态符号执行探针沿着第2行(翻转状态)向前探测该分支点是否影响后续的分支的跳转,同时探测附近是否有新的状态转移。探针向前探测三步就可以发现新的状态转移10→11,具体的探针探测算法ForwardProbe会在下文介绍。ForwardProbe函数会返回真,因此FB-SA算法会对第3行的分支点进行翻转并且约束求解。只有第3行的分支点被10次重复翻转求解,才可能依靠符号执行引擎求解出完整的字符串命令“first_cmd\n”,此时10→11的状态转移也被遍历过了。同理,剩下的两个命令字符串也可以被求解出来。当所有命令字符串都求解出来以后,在第3行的分支点附近也就没有新的状态转移了,因此不会再浪费计算资源对第3行的分支点翻转求解,所以改进的FB-SA算法并不会加重路径爆炸问题,对测试效率的影响较小。
具体地,所述前向探针按照如下方式进行探测:前向探针从翻转状态开始向前符号执行,每执行一步,检测发现的状态转移是否为新,若是则返回真,若否则继续进行符号执行,一直执行N步;其间若发现新的状态转移,返回真,若向前执行N步亦没有发现新的状态转移,返回假;其中,N≥1。
具体地,前向探针的探测算法如下所示:
探针从翻转状态Sd开始向前符号执行,每执行一步,都检测发现的状态转移是否为新的。若发现了新的状态转移,即没有被符号执行遍历过,也没有被模糊测试遍历过,则ForwardProbe返回真。否则,执行下一步,一直执行N步。若N步之内都没有发现新的状态转移,则ForwardProbe返回假。N的取值可以根据经验调整,N的取值越大,符号执行的步数越多,效率越低。但是若N的取值太小,又无法发现后续被间接影响的分支,无法提升覆盖率。
在线符号执行技术每次遇到分支点都在内存中克隆出两个约束条件相反的状态,因此可以同时执行多条路径,所以执行效率相对于离线符号执行较高。对于测试例E,离线符号执行技术需要执行多次并且翻转多次分支点才能求解出一个完整的命令字符串,但是在线符号执行技术可以同时执行多条路径,快速求解出完整的命令字符串。为了快速求解出能够遍历到新的状态转移S1->S2的样本,本发明结合在线符号执行技术进行多路径探索。探针在探测到新的状态状态转移S1->S2以后,会创建一个在线符号执行线程在有限时间内尝试求解能够遍历这个新的状态转移S1->S2的样本。当分支点数量增多时,在线符号执行状态呈指数增长,会导致内存耗竭以及路径爆炸的问题,因此需要为在线符号执行线程设置一个时间阈值。一旦超过时间阈值还没有求解出能够遍历这个新的状态转移的样本,则终止在线符号执行线程。对于测试例E,当发现3→2状态转移已经被遍历过时,探针会沿着第2行(翻转状态)继续往前符号执行若干步,在这个过程中,会发现新的状态转移10→11。因此,ForwardProbe算法会新建在线符号执行线程,尝试找到遍历新的状态转移10→11的样本,即“first_cmd\n”命令字符串。若有限时间内能够求解成功,则会节省求解出"first_cmd\n"命令字符串的时间。同理,可以通过在线符号执行线程求解出能够遍历新的状态转移13→14和16→17的样本,后续命令字符串“second_cmd\n”和“crash_cmd\n”也会被求解出来。
为验证本发明效果,进行如下实验:
针对测试例E进行测试,比较FB-SA路径搜索算法和DrillerCore路径搜索算法的测试覆盖率。测试时只开启一个AFL进程和一个符号执行进程。为了体现符号执行的求解能力,暂时关闭模糊测试的字典功能。测试命令如下:
./shellphuzz-c 1-d 1-f 8--no-dictionary../test/driller_sample/driller_sample
使用AFL模糊测试工具遍历的状态转移数来衡量覆盖率。对于同一个程序,遍历的状态转移数越多,覆盖率越高。经过20分钟的测试,两种路径搜索算法的覆盖率曲线趋于稳定,如图3所示。其中横轴为时间,纵轴为状态转移数。
符号执行每求解出一个命令字符串,就会遍历对应的命令函数,导致一次覆盖率的跃升。从图3可以看到,FB-SA路径搜索算法(N=3或4)存在三次覆盖率的跃升,分别对应三个命令函数分支,而DrillerCore路径搜索算法没有求解出一个命令字符串,覆盖率最低。为了寻找最合适的探测步数,分别设置探针的探测步数N为1至4进行比较。从图3可以看到当探测步数为1和2时,只能求解出第一个命令字符串。当探测步数为3和4时,可以求解出三个命令字符串。当N=3时,测试效率最高,最快达到了覆盖率最大值。因此,针对测试例E,FB-SA算法能够有效提高覆盖率。
为了测试基于前向探针的符号执行路径搜索算法对测试效率的影响,使用DrillerCore路径搜索算法和FB-SA路径搜索算法分别对同一个样本“fuzz”进行离线符号执行分析,记录的执行时间如图4所示。从图4中,可以看到FB-SA路径搜索算法对执行效率的影响很小。但是,随着探测步数的增加,离线符号执行带来的负载会逐渐变大(如表1所示),四步以内的负载在10%以内。
表1FB-SA算法的负载
路径搜索算法 | 负载 |
FB-SA(N=1) | 8.53% |
FB-SA(N=2) | 8.61% |
FB-SA(N=3) | 9.19% |
FB-SA(N=4) | 9.45% |
另外,还对CGC竞赛的十个测试例(如表2所示)做了对比测试。实验结果表明,经过24小时的测试,与DrillerCore路径搜索算法相比,基于前向探针的路径搜索算法使测试覆盖率平均提高了8.28%。
表2CGC竞赛测试题
综上,本发明提出的一种基于前向探针的离线符号执行路径搜索方法(FB-SA算法)通过前向探针来探测分支点之后的若干步之内是否存在还没有遍历过的状态转移。若前向探针探测到新的状态转移,则重复翻转该分支点,从而提高后续新的状态转移被遍历的机会。另外,对于前向探针探测到的新的状态转移,FB-SA算法结合在线符号执行技术进行多路径探索,从而提高遍历新的状态转移的速度。实验结果表明,FB-SA算法可以快速提高覆盖率,并且对测试效率的影响很小。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种基于前向探针的离线符号执行路径搜索方法,其特征在于,包括:
步骤1:对程序使用模糊测试工具进行分析,将模糊测试工具产生的能够遍历新的状态转移的样本作为下一代变异的种子样本;
步骤2:当步骤1中产生的样本无法遍历新的状态转移时,符号执行引擎从样本队列中选取一个样本生成离线符号执行轨迹;
步骤3:将步骤2中生成的离线符号执行轨迹从程序入口开始逐个翻转分支点,并创建一个动态符号执行探针作为前向探针沿着翻转状态向前探测该分支点是否影响后续分支的跳转,同时探测附近是否有新的状态转移;
步骤4:如果步骤3中分支点在翻转时发现新的状态转移,或者前向探针探测到该分支点附近有新的状态转移,则尝试对翻转状态进行约束求解;
步骤5:如果步骤4中翻转状态可解,则将产生的新样本加入到模糊测试样本队列中,将翻转状态加入到已遍历集合中;
步骤6:继续沿着步骤5中的翻转状态执行下一步,直到离线符号执行轨迹的最后一个分支点结束;
步骤7:将步骤6中继续执行求解生成的样本集合作为模糊测试的种子样本,继续执行模糊测试,以遍历到新的状态转移。
2.根据权利要求1所述的一种基于前向探针的离线符号执行路径搜索方法,其特征在于,所述模糊测试工具为AFL。
3.根据权利要求2所述的一种基于前向探针的离线符号执行路径搜索方法,其特征在于,所述符号执行引擎为angr。
4.根据权利要求3所述的一种基于前向探针的离线符号执行路径搜索方法,其特征在于,在所述步骤3之前,还包括:从AFL测试目录中读取状态转移数组,来同步AFL已经遍历的状态空间。
5.根据权利要求1所述的一种基于前向探针的离线符号执行路径搜索方法,其特征在于,所述前向探针按照如下方式进行探测:前向探针从翻转状态开始向前符号执行,每执行一步,检测发现的状态转移是否为新,若是则返回真,若否则继续进行符号执行,一直执行N步;其间若发现新的状态转移,返回真,若向前执行N步亦没有发现新的状态转移,返回假。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085873.2A CN111400165A (zh) | 2020-02-11 | 2020-02-11 | 一种基于前向探针的离线符号执行路径搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010085873.2A CN111400165A (zh) | 2020-02-11 | 2020-02-11 | 一种基于前向探针的离线符号执行路径搜索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111400165A true CN111400165A (zh) | 2020-07-10 |
Family
ID=71432666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010085873.2A Withdrawn CN111400165A (zh) | 2020-02-11 | 2020-02-11 | 一种基于前向探针的离线符号执行路径搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400165A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052156A (zh) * | 2020-07-15 | 2020-12-08 | 杭州木链物联网科技有限公司 | 一种模糊测试方法、装置和系统 |
CN114238154A (zh) * | 2022-02-24 | 2022-03-25 | 湖南泛联新安信息科技有限公司 | 一种符号执行方法、单元测试方法、电子设备及存储介质 |
CN116932416A (zh) * | 2023-09-15 | 2023-10-24 | 北京华云安信息技术有限公司 | 基于敏感函数的模糊测试方法、装置、设备以及存储介质 |
CN118113728A (zh) * | 2024-04-30 | 2024-05-31 | 浪潮电子信息产业股份有限公司 | 一种数据查询方法、系统、装置、设备、可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130091495A1 (en) * | 2011-10-06 | 2013-04-11 | Nec Laboratories America, Inc. | Feedback-directed random class unit test generation using symbolic execution |
CN108052825A (zh) * | 2017-12-29 | 2018-05-18 | 哈尔滨工业大学 | 针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统 |
CN108845944A (zh) * | 2018-06-28 | 2018-11-20 | 中国人民解放军国防科技大学 | 一种结合符号执行提高软件模糊测试效率的方法 |
US20190384697A1 (en) * | 2018-06-18 | 2019-12-19 | Fujitsu Limited | Branch coverage guided symbolic execution for hybrid fuzz testing of software binaries |
-
2020
- 2020-02-11 CN CN202010085873.2A patent/CN111400165A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130091495A1 (en) * | 2011-10-06 | 2013-04-11 | Nec Laboratories America, Inc. | Feedback-directed random class unit test generation using symbolic execution |
CN108052825A (zh) * | 2017-12-29 | 2018-05-18 | 哈尔滨工业大学 | 针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统 |
US20190384697A1 (en) * | 2018-06-18 | 2019-12-19 | Fujitsu Limited | Branch coverage guided symbolic execution for hybrid fuzz testing of software binaries |
CN108845944A (zh) * | 2018-06-28 | 2018-11-20 | 中国人民解放军国防科技大学 | 一种结合符号执行提高软件模糊测试效率的方法 |
Non-Patent Citations (2)
Title |
---|
柳晓龙等: ""基于前向探针的符号执行路径搜索算法"", 《信息工程大学学报》 * |
秦晓军等: ""基于懒符号执行的软件脆弱性路径求解算法"", 《计算机学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052156A (zh) * | 2020-07-15 | 2020-12-08 | 杭州木链物联网科技有限公司 | 一种模糊测试方法、装置和系统 |
CN112052156B (zh) * | 2020-07-15 | 2022-07-29 | 浙江木链物联网科技有限公司 | 一种模糊测试方法、装置和系统 |
CN114238154A (zh) * | 2022-02-24 | 2022-03-25 | 湖南泛联新安信息科技有限公司 | 一种符号执行方法、单元测试方法、电子设备及存储介质 |
CN114238154B (zh) * | 2022-02-24 | 2022-05-06 | 湖南泛联新安信息科技有限公司 | 一种符号执行方法、单元测试方法、电子设备及存储介质 |
CN116932416A (zh) * | 2023-09-15 | 2023-10-24 | 北京华云安信息技术有限公司 | 基于敏感函数的模糊测试方法、装置、设备以及存储介质 |
CN116932416B (zh) * | 2023-09-15 | 2023-12-22 | 北京华云安信息技术有限公司 | 基于敏感函数的模糊测试方法、装置、设备以及存储介质 |
CN118113728A (zh) * | 2024-04-30 | 2024-05-31 | 浪潮电子信息产业股份有限公司 | 一种数据查询方法、系统、装置、设备、可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400165A (zh) | 一种基于前向探针的离线符号执行路径搜索方法 | |
Hu et al. | Deepmutation++: A mutation testing framework for deep learning systems | |
CN108052825B (zh) | 针对二进制可执行文件的模糊测试与符号执行相结合的漏洞检测系统 | |
CN107590073B (zh) | 基于路径覆盖软件测试的测试用例自动生成方法 | |
Díaz et al. | Automated software testing using a metaheuristic technique based on tabu search | |
CN112069061A (zh) | 深度学习梯度指导变异的软件安全漏洞检测方法及系统 | |
CN108985060A (zh) | 一种大规模安卓恶意软件自动化检测系统及方法 | |
US20120079460A1 (en) | Instrumentation apparatus and method | |
WO2006130947A1 (en) | A method of syntactic pattern recognition of sequences | |
CN110597715A (zh) | 一种基于模糊测试的测试样本优化方法 | |
CN112866292A (zh) | 一种面向多样本组合攻击的攻击行为预测方法和装置 | |
CN102622295B (zh) | 一种基于谓词执行信息分析的自适应软件缺陷定位方法 | |
CN114138669A (zh) | 一种基于函数级选择符号化混合执行的软件自动测试方法 | |
CN112633346A (zh) | 一种基于特征交互性的特征选择方法 | |
CN112836735A (zh) | 一种优化的随机森林处理不平衡数据集的方法 | |
CN117690153B (zh) | 一种基于确定型有限自动机的文本检测方法、装置及设备 | |
CN114036040A (zh) | 基于细粒度信息同步的软件混合模糊测试方法及设备 | |
CN107102921B (zh) | 一种面向带I/O型数字量异步端口SoC的数字量监测方法 | |
CN114706769A (zh) | 基于日志的面向回归测试的黑盒测试用例排序方法 | |
CN113569252A (zh) | 结合神经网络基于函数与分支覆盖的漏洞检测方法 | |
CN115904857A (zh) | 一种瓶颈节点的筛选方法、装置及计算机设备 | |
KR101317540B1 (ko) | 최대 가중화 빈발 패턴 마이닝 방법 | |
Li et al. | Speedneuzz: Speed up neural program approximation with neighbor edge knowledge | |
Chitty | Exploiting tournament selection for efficient parallel genetic programming | |
CN118013339A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200710 |