自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 模糊测试中的动态符号执行

动态符号执行

2021-02-27 21:02:55 1142

原创 SMT简介

首先,通过一篇中文综述,我们简单了解 SMT 的名词解释, SMT 的应用场景。应用场景中,我们重点关注了测试用例的自动生成:通过动态符号执行获取执行路径;对前缀路径的最后一个节点取非操作;使用求解器查看是否有满足解,如果有,则为新的测试用例。简单了解 SMT 之后,我们尝试使用其中一种 SMT 求解器 z3 。大多数 SMT Solver都支持SMT-LIB。SMT-LIB其中一个目标便是促进SMT求解器采用通用语言。所以我们有必要了解下 SMT-LIB 标准。

2021-02-27 16:20:43 9784 1

原创 追踪信息流

crash并不是程序的存在bug的唯一标志。在本章中,我们将深入探索如何在Python中跟踪信息流,以及如何使用这些信息流来确定程序是否按预期运行。

2021-02-18 23:24:08 375

原创 概率语法的模糊测试

概率语法的模糊测试,设计、(实现)、应用。

2021-02-09 21:56:40 239

原创 LL语法分析简介

本文先简单介绍自顶向下的分析方法。我们会指出这种方法存在的两个个问题:左递归问题,回溯问题。针对左递归问题,可以通过文法的实用限制和扩充的 BNF 方法得到解决。针对回溯问题可以通过左提公共终结符和First集合来进行确定性选择,以避免回溯。同时介绍Follow集合,从而可以判断其下面的非终结符能否产生当前需要的终结符,以排除当前字符串出错的可能。另外,First 集和 Follow 集不能有交集,否则会带来不确定性。而LL(1)文法是满足上面三个条件(文法不存在左递归、没有回溯,相同非终结符的 F

2021-02-07 23:27:59 6377

原创 使用文法的模糊测试2

本文采用树状结构,存储语法树。树状结构,在语法树的生长过程中,相对于字符串匹配替换,更加高效。在语法树的不同生长时期,采用不同的扩展方式。语法树的生长初期,尽可能大范围的拓展节点,直到树中包含,至少min_nonterminals个非终结符。接着,语法树进入生长中期,使用随机的方式拓展节点。此阶段,最多包含max_nonterminals个非终结符。最后,语法树进入生长末期,在拓展的时候,尽可能小范围的拓展节点。这些策略,解决了无限循环和字符串的生成过程无法控制等问题。

2021-02-05 15:30:03 219

原创 graphviz的初次使用

首先介绍DOT语言。接着,演示使用plantuml和python这两个工具渲染DOT语言描述的图。(好像都是使用的graphviz)最后讲解下fuzzing book中使用DOT语言,图像化展示分析树的实现代码。本质:DOT语言描述图+渲染

2021-02-03 22:55:55 790

原创 正则表达式

正则表达式资料整理。

2021-02-03 17:40:23 111

原创 使用文法的模糊测试

程序的有效输入集合称为语言。语言的范围从简单到复杂。之前,我们随机输入的字符串(语言),很容易用正则表达式生成。为了形式化的描述语言,这里我们使用文法。通过文法,生成语句(言),作为模糊测试的输入。本文使用python,实现一个BNF的算数表达式文法。并使用该文法生成测试用例。本文不包含(但Fuzzing with Grammars 大部分包含):文法的铁路图生成、EBNF、将EBNF转换成BNF(通过增加新的非终结符,先去括号,再去运算符)、给每个表达式添加参数、文法的合法性检查(开始符号不能出现

2021-02-01 23:21:01 515

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除