From b444966f68984cd98e9905cf238ee1503f132141 Mon Sep 17 00:00:00 2001 From: firmianay Date: Thu, 12 Apr 2018 22:16:00 +0800 Subject: [PATCH] finish 8.2.2 --- SUMMARY.md | 3 +- doc/4.1_linux_kernel_debug.md | 104 ++++++++++++++++++ doc/4_tips.md | 2 +- doc/5.2.1_pin.md | 2 +- doc/5.3_symbolic_execution.md | 78 +++++++++++-- ...symbolic_execution_for_software_testing.md | 71 ++++++++++++ doc/8.2.3_automatic_exploit_generation.md | 1 + doc/8_academic.md | 1 + pic/5.3_overview.png | Bin 0 -> 39472 bytes pic/5.3_tree.png | Bin 0 -> 21083 bytes pic/8.2.2_constraint.png | Bin 0 -> 5168 bytes pic/8.2.2_loop.png | Bin 0 -> 20926 bytes pic/8.2.2_tree.png | Bin 0 -> 61998 bytes pic/8.2.2_twice.png | Bin 0 -> 18210 bytes src/Others/5.3_symbolic_execution/tree.gv | 16 +++ 15 files changed, 263 insertions(+), 15 deletions(-) create mode 100644 doc/4.1_linux_kernel_debug.md create mode 100644 doc/8.2.3_automatic_exploit_generation.md create mode 100644 pic/5.3_overview.png create mode 100644 pic/5.3_tree.png create mode 100644 pic/8.2.2_constraint.png create mode 100644 pic/8.2.2_loop.png create mode 100644 pic/8.2.2_tree.png create mode 100644 pic/8.2.2_twice.png create mode 100644 src/Others/5.3_symbolic_execution/tree.gv diff --git a/SUMMARY.md b/SUMMARY.md index ac015ed..450b54c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -78,7 +78,7 @@ GitHub 地址:https://github.com/firmianay/CTF-All-In-One * [3.5 Misc](doc/3.5_misc.md) * [3.6 Mobile](doc/3.6_mobile.md) * [四、技巧篇](doc/4_tips.md) - * 4.1 + * [4.1 Linux 内核调试](doc/4.1_linux_kernel_debug.md) * [4.2 Linux 命令行技巧](doc/4.2_Linux_terminal_tips.md) * [4.3 GCC 编译参数解析](doc/4.3_gcc_arg.md) * [4.4 GCC 堆栈保护技术](doc/4.4_gcc_sec.md) @@ -165,6 +165,7 @@ GitHub 地址:https://github.com/firmianay/CTF-All-In-One * Symbolic Execution * [8.2.1 All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution (but might have been afraid to ask)](doc/8.2.1_dynamic_taint_analysis.md) * [8.2.2 Symbolic Execution for Software Testing: Three Decades Later](doc/8.2.2_symbolic_execution_for_software_testing.md) + * [8.2.3 AEG: Automatic Exploit Generation](doc/8.2.3_automatic_exploit_generation.md) * [Address Space Layout Randomization](doc/8.3_aslr_review.md) * [8.3.1 Address Space Layout Permutation (ASLP): Towards Fine-Grained Randomization of Commodity Software](doc/8.3.1_aslp.md) * Code Obfuscation diff --git a/doc/4.1_linux_kernel_debug.md b/doc/4.1_linux_kernel_debug.md new file mode 100644 index 0000000..59903be --- /dev/null +++ b/doc/4.1_linux_kernel_debug.md @@ -0,0 +1,104 @@ +# 4.1 Linux 内核调试 + +- [准备工作](#准备工作) + + +## 准备工作 +与用户态程序不同,为了进行内核调试,我们需要两台机器,一台调试,另一台被调试。在调试机上需要安装必要的调试器(如GDB),被调试机上运行着被调试的内核。 + +这里选择用 Ubuntu16.04 来展示,因为该发行版默认已经开启了内核调试支持: +``` +$ cat /boot/config-4.13.0-38-generic | grep GDB +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_SERIAL_KGDB_NMI=y +CONFIG_GDB_SCRIPTS=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_KGDB=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_KDB=y +``` + +#### 获取符号文件 +下面我们来准备调试需要的符号文件。看一下该版本的 code name: +``` +$ lsb_release -c +Codename: xenial +``` +然后在下面的目录下新建文件 `ddebs.list`,其内容如下(注意看情况修改Codename): +``` +$ cat /etc/apt/sources.list.d/ddebs.list +deb http://ddebs.ubuntu.com/ xenial main restricted universe multiverse +deb http://ddebs.ubuntu.com/ xenial-security main restricted universe multiverse +deb http://ddebs.ubuntu.com/ xenial-updates main restricted universe multiverse +deb http://ddebs.ubuntu.com/ xenial-proposed main restricted universe multiverse +``` +`http://ddebs.ubuntu.com` 是 Ubuntu 的符号服务器。执行下面的命令添加密钥: +``` +$ wget -O - http://ddebs.ubuntu.com/dbgsym-release-key.asc | sudo apt-key add - +``` +然后就可以更新并下载符号文件了: +``` +$ sudo apt-get update +$ uname -r +4.13.0-38-generic +$ sudo apt-get install linux-image-4.13.0-38-generic-dbgsym +``` +完成后,符号文件将会放在下面的目录下: +``` +$ file /usr/lib/debug/boot/vmlinux-4.13.0-38-generic +/usr/lib/debug/boot/vmlinux-4.13.0-38-generic: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=f00f4b7ef0ab8fa738b6a9caee91b2cbe23fef97, not stripped +``` +可以看到这是一个静态链接的可执行文件,使用 gdb 即可进行调试,例如这样: +``` +$ gdb -q /usr/lib/debug/boot/vmlinux-4.13.0-38-generic +Reading symbols from /usr/lib/debug/boot/vmlinux-4.13.0-38-generic...done. +gdb-peda$ p init_uts_ns +$1 = { + kref = { + refcount = { + refs = { + counter = 0x2 + } + } + }, + name = { + sysname = "Linux", '\000' , + nodename = "(none)", '\000' , + release = "4.13.0-38-generic", '\000' , + version = "#43~16.04.1-Ubuntu SMP Wed Mar 14 17:48:43 UTC 2018", '\000' , + machine = "x86_64", '\000' , + domainname = "(none)", '\000' + }, + user_ns = 0xffffffff822517a0 , + ucounts = 0x0 , + ns = { + stashed = { + counter = 0x0 + }, + ops = 0xffffffff81e2cc80 , + inum = 0xeffffffe + } +} +``` + +#### 获取源文件 +将 `/etc/apt/sources.list` 里的 `deb-src` 行都取消掉注释: +``` +$ sed -i '/^#\sdeb-src /s/^#//' "/etc/apt/sources.list" +``` +然后就可以更新并获取 Linux 内核源文件了: +``` +$ sudo apt-get update +$ mkdir -p ~/kernel/source +$ cd ~/kernel/source +$ apt-get source $(dpkg-query '--showformat=${source:Package}=${source:Version}' --show linux-image-$(uname -r)) +``` +``` +$ ls linux-hwe-4.13.0/ +arch CREDITS debian.master firmware ipc lib net security tools zfs +block crypto Documentation fs Kbuild MAINTAINERS README snapcraft.yaml ubuntu +certs debian drivers include Kconfig Makefile samples sound usr +COPYING debian.hwe dropped.txt init kernel mm scripts spl +``` diff --git a/doc/4_tips.md b/doc/4_tips.md index 621a4e5..9c3e38a 100644 --- a/doc/4_tips.md +++ b/doc/4_tips.md @@ -1,6 +1,6 @@ # 第四章 技巧篇 -- 4.1 +- [4.1 Linux 内核调试](4.1_linux_kernel_debug.md) - [4.2 Linux 命令行技巧](4.2_Linux_terminal_tips.md) - [4.3 GCC 编译参数解析](4.3_gcc_arg.md) - [4.4 GCC 堆栈保护技术](4.4_gcc_sec.md) diff --git a/doc/5.2.1_pin.md b/doc/5.2.1_pin.md index 05bb86c..c3648cc 100644 --- a/doc/5.2.1_pin.md +++ b/doc/5.2.1_pin.md @@ -116,7 +116,7 @@ sci: ## Pin 简介 Pin 是 Intel 公司研发的一个动态二进制插桩框架,可以在二进制程序运行过程中插入各种函数,以监控程序每一步的执行。[官网](https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool)(目前有 2.x 和 3.x 两个版本,2.x 不能在 Linux 内核 4.x 及以上版本上运行,这里我们选择 3.x) -Pin 具有一下优点: +Pin 具有以下优点: - 易用 - 使用动态插桩,不需要源代码、不需要重新编译和链接。 - 可扩展 diff --git a/doc/5.3_symbolic_execution.md b/doc/5.3_symbolic_execution.md index 166aff5..85eaacf 100644 --- a/doc/5.3_symbolic_execution.md +++ b/doc/5.3_symbolic_execution.md @@ -1,22 +1,76 @@ # 5.3 符号执行 -- [符号执行的历史](#符号执行的历史) -- [什么是符号执行](#什么是符号执行) +- [基本原理](#基本原理) +- [参考资料](#参考资料) -## 符号执行的历史 - -![history-of-se](https://raw.githubusercontent.com/enzet/symbolic-execution/master/diagram/symbolic-execution.svg) - -或者进入[https://github.com/enzet/symbolic-execution](https://github.com/enzet/symbolic-execution)查看SVG大图。 - - -## 什么是符号执行 +## 基本原理 符号执行起初应用于基于源代码的安全检测中,它通过符号表达式来模拟程序的执行,将程序的输出表示成包含这些符号的逻辑或数学表达式,从而进行语义分析。 符号执行可分为过程内分析和过程间分析(或全局分析)。过程内分析是指只对单个函数的代码进行分析,过程间分析是指在当前函数入口点要考虑当前函数的调用信息和环境信息等。当符号执行用于代码漏洞静态检测时,更多的是进行程序全局的分析且更侧重代码的安全性相关的检测。将符号执行与约束求解器结合使用来产生测试用例是一个比较热门的研究方向。(关于约束求解我们会在另外的章节中详细讲解) 符号执行具有代价小、效率高的有点,但缺点也是很明显的。比如路径状态空间的爆炸问题,由于每一个条件分支语句都可能会使当前路径再分出一条新的路径,特别是遇到循环分支时,每增加一次循环都将增加一条新路径,因此这种增长是指数级的。在实践中,通常采用一些这种的办法来解决路径爆炸问题,比如规定每个过程内的分析路径的数目上限,或者设置时间上限和内存上限等来进行缓解。 -#### 动态符号执行 -动态符号执行将符号执行和具体执行结合起来,并交替使用静态分析和动态分析,在具体执行的同时堆执行到的指令进行符号化执行。 +**动态符号执行**将符号执行和具体执行结合起来,并交替使用静态分析和动态分析,在具体执行的同时堆执行到的指令进行符号化执行。 + +每一个符号执行的路径都是一个 true 和 false 组成的序列,其中第 i 个 true(或false)表示在该路径的执行中遇到的第 i 个条件语句。一个程序所有的执行路径可以用执行树(Execution Tree)表示。举一个例子: +```c +int twice(int v) { + return 2*v; +} + +void testme(int x, int y) { + z = twice(y); + if (z == x) { + if (x > y+10) { + ERROR; + } + } +} + +int main() { + x = sym_input(); + y = sym_input(); + testme(x, y); + return 0; +} +``` +这段代码的执行树如下图所示,图中的三条路径分别可以被输入 {x = 0, y = 1}、{x = 2, y = 1} 和 {x = 30, y = 15} 触发: + +![](../pic/5.3_tree.png) + +符号执行中维护了符号状态 σ 和符号路径约束 PC,其中 σ 表示变量到符号表达式的映射,PC 是符号表示的不含量词的一阶表达式。在符号执行的初始化阶段,σ 被初始化为空映射,而 PC 被初始化为 true,并随着符号执行的过程不断变化。在对程序的某一路径分支进行符号执行的终点,把 PC 输入约束求解器以获得求解。如果程序把生成的具体值作为输入执行,它将会和符号执行运行在同一路径,并且以同一种方式结束。 + +例如上面的程序中 σ 和 PC 变化过程如下: +``` +开始: σ = NULL PC = true +第6行: σ = x->x0, y->y0, z->2y0 PC = true +遇到if(e)then{}else{}:σ = x->x0, y->y0 then分支:PC = PC∧σ(e) else分支:PC' = PC∧¬σ(e) +``` + +于是我们发现,在符号执行中,对于分析过程所遇到的程序中带有条件的控制转移语句,可以利用变量的符号表达式将控制转移语句中的条件转化为对符号取值的约束,通过分析约束是否满足来判断程序的某条路径是否可行。这样的过程也叫作路径的可行性分析,它是符号执行的关键部分,我们常常将符号取值约束的求解问题转化为一阶逻辑的可满足性问题,从而使用可满足性模理论(SMT)求解器对约束进行求解。 + +#### 检测程序漏洞 +程序中变量的取值可以被表示为符号值和常量组成的计算表达式,而一些程序漏洞可以表现为某些相关变量的取值不满足相应的约束,这时通过判断表示变量取值的表达式是否可以满足相应的约束,就可以判断程序是否存在相应的漏洞。 + +使用符号执行检测程序漏洞的原理如下图所示: + +![](../pic/5.3_overview.png) + +举个数组越界的例子: +```c +int a[10]; +scanf("%d", &i); +if (i > 0) { + if (i > 10) + i = i % 10; + a[i] = 1; +} +``` +首先,将表示程序输入的变量 i 用符号 x 表示其取值,通过分别对 if 条件语句的两条分支进行分析,可以发现在赋值语句 a[i] = 1 处,当 x 的取值大于 0、小于 10 时,变量 i 的取值为 x,当 x 的取值大于 10 时,变量 i 的取值为 x % 10。通过分析约束 `(x>10∨x<10)∧(010∨x%10<10)∧x>10` 的可满足性,可以发现漏洞的约束是不可满足的,于是认为漏洞不存在。 + +#### 构造测试用例 + + +## 参考资料 +- [History of symbolic execution](https://github.com/enzet/symbolic-execution) diff --git a/doc/8.2.2_symbolic_execution_for_software_testing.md b/doc/8.2.2_symbolic_execution_for_software_testing.md index c34da8e..eaf8b16 100644 --- a/doc/8.2.2_symbolic_execution_for_software_testing.md +++ b/doc/8.2.2_symbolic_execution_for_software_testing.md @@ -1 +1,72 @@ # 8.2.2 Symbolic Execution for Software Testing: Three Decades Later + + +## 简介 +近几年符号执行因其在生成高覆盖率的测试用例和发现复杂软件漏洞的有效性再次受人关注。这篇文章对现代符号执行技术进行了概述,讨论了这些技术在路径探索,约束求解和内存建模方面面临的主要挑战,并讨论了几个主要从作者自己的工作中获得的解决方案。 + +这算是一篇很经典很重要的论文了。 + + +## 传统符号执行 +符号执行的关键是使用符号值替代具体的值作为输入,并将程序变量的值表示为符号输入值的符号表达式。其结果是程序计算的输出值被表示为符号输入值的函数。一个符号执行的路径就是一个 true 和 false 组成的序列,其中第 i 个 true(或false)表示在该路径的执行中遇到的第 i 个条件语句,并且走的是 then(或else) 这个分支。一个程序所有的执行路径可以用执行树(Execution Tree)来表示。举一个例子: + +![](../pic/8.2.2_tree.png) + +函数 testme() 有 3 条执行路径,组成右边的执行树。只需要针对路径给出输入,即可遍历这 3 条路径,例如:{x = 0, y = 1}、{x = 2, y = 1} 和 {x = 30, y = 15}。符号执行的目标就是去生成这样的输入集合,在给定的时间内遍历所有的路径。 + +符号执行维护了符号状态 σ 和符号路径约束 PC,其中 σ 表示变量到符号表达式的映射,PC 是符号表示的不含量词的一阶表达式。在符号执行的初始化阶段,σ 被初始化为空映射,而 PC 被初始化为 true,并随着符号执行的过程不断变化。在对程序的某一路径分支进行符号执行的终点,把 PC 输入约束求解器以获得求解。如果程序把生成的具体值作为输入执行,它将会和符号执行运行在同一路径,并且以同一种方式结束。 + +例如上面的例子。符号执行开始时,符号状态 σ 为空,符号路径约束 PC 为 true。每当遇到输入语句 var = sym_input() 时,符号执行就会在符号状态 σ 中加入一个映射 var->s,这里的 s 是一个新的未约束的符号值,于是程序的前两行得到结果 σ = {x->x0, y->y0}。当遇到一个赋值语句 v = e 时,符号执行就会在符号状态 σ 中加入一个 v 到 σ(e) 的映射,于是程序执行完第 6 行后得到 σ = {x->x0, y->y0, z->2y0}。 + +当每次遇到条件语句 if(e) S1 else S2 时,PC 会被更新为 PC∧σ(e),表示 then 分支,同时生成一个新的路径约束 PC',初始化为 PC∧¬σ(e),表示 else 分支。如果 PC 是可满足的,那么程序会走 then 分支(σ 和 PC),否则如果 PC' 是可满足的,那么程序会走 else 分支(σ 和 PC')。值得注意的是,符号执行不同于实际执行,其实两条路都是可以走的,分别维护它们的状态就好了。如果 PC 和 PC' 都不能满足,那么符号执行就在对应的路径终止。例如,第 7 行建立了符号执行实例,路径约束分别是 x0 = 2y0 和 x0 ≠ 2y0,在第 8 行又建立了两个实例,分别是 (x0 = 2y0)∧(x0 > y0 + 10) 和 (x0 = 2y0)∧(x0 ≤ y0 + 10)。 + +如果符号执行遇到了 exit 语句或者 error,当前实例会终止,并利用约束求解器对当前路径约束求出一个可满足的值,这个值就构成了测试输入:如果程序输入了这些实际的值,就会在同样的路径结束。例如上图中三个绿色块里的值。 + +如果符号执行的代码包含循环或递归,且它们的终止条件是符号化的,那么可能就会导致产生无数条路径。举个例子: + +![](../pic/8.2.2_loop.png) + +这段程序的执行路径有两种:一种是无数的 true 加上一个 false,另一种是无数的 false。第一种的符号路径约束如下: + +![](../pic/8.2.2_constraint.png) + +其中每个 Ni 都是一个新的符号值,执行结束的符号状态为 {N->Nn+1, sum->Σi∈[1,n]Ni}。在实践中我们需要通过一些方法限制这样的搜索。 + +传统符号执行的一个关键的缺点是,当符号路径约束包含了不能由约束求解器求解的公式时,就不能生成输入值。例如把上面的 twice 函数替换成下面的: + +![](../pic/8.2.2_twice.png) + +那么符号执行会得到路径约束 x0 ≠ (y0y0)mod50 和 x0 = (y0y0)mod50。更严格一点,如果我们不知道 twice 的源码,符号执行将得到路径约束 x0 ≠ twice(y0) 和 x0 = twice(y0)。在这两种情况下,符号执行都不能生成输入值。 + + +## 现代符号执行 +现代符号执行的标志和最大的优势是将实际执行和符号执行结合了起来。 + +#### Concolic Testing +Directed Automated Random Testing(DART) 在程序执行中使用了具体值,动态地执行符号执行。Concolic 执行维护一个实际状态和一个符号状态:实际状态将所有变量映射到实际值,符号状态只映射那些有非实际值的变量。Concolic 执行首先使用一些给定的或者随机的输入作为开始,收集执行过程中的条件语句对输入的符号约束,然后使用约束求解器推测输入的变化,从而引导下一次的程序执行到另一条路径。这个过程会不断地重复,直至探索完所有的执行路径,或者满足了用户定义的覆盖范围,又或者超出了预计的时间开销。 + +还是上面那个例子。Concolic 执行会生成一些随机输入,例如 {x = 22, y = 7},然后对程序同时进行实际执行和符号执行。这个实际执行会到达第 7 行的 else 分支,同时符号执行会为该实际执行路径生成路径约束 x ≠ 2y0。然后 Concolic 执行会将路径约束的连接词取反,求解 x0 = 2y0 得到测试输入 {x = 2, y = 1},这个新的输入将会让程序沿着另一条执行路径运行。然后 Concolic 执行在这个新的测试输入上,重复实际执行和符号执行的过程,此时将到达第 7 行的 then 分支和第 8 行的 else 分支,生成路径约束 (x0 = 2y0)∧(x0 ≤ y0 + 10),从而生成新的测试输入让程序执行没有被执行过的路径。通过对将结合项 (x0 ≤ y0 + 10) 取反得到的约束 (x0 = 2y0)∧(x0 > y0 + 10) 进行求解,得到测试输入 {x = 30, y = 15},然后程序到达了 ERROR 语句。这样程序的所有 3 条路径就都探索完了,其使用的策略是深度优先搜索。 + +#### Execution-Generated Testing(EGT) +EGT 是由 EXE 和 KLEE 实现和扩展的现代符号执行方法,它将程序的实际状态和符号状态进行了区分。EGT 在每次执行前会动态地检查所涉及的值是不是都是实际的值,如果是,则程序按照原样执行,否则,如果至少有一个值是符号值,程序会通过更新当前路径的条件符号化地执行。例如上面的例子,把 17 行的 y = sym_input() 改成 y = 10,那么第 6 行就会用实参 20 去调用 twice 函数,就像原程序那样执行。然后第 7 行将变成 if(20 == x),符号执行会通过添加约束 x = 20,走 then 分支,同时添加约束 x ≠ 20,走 else 分支。而在 then 分支上,第 8 行变成了 if(x > 20),不会到达 ERROR。 + +于是,传统符号执行中,因为外部函数或者无法进行约束求解造成的问题通过使用实际值得到了解决。但同时因为在执行中使用了实际值,固定了某些执行路径,由此将造成路径完成性的缺失。 + + +## 关键的挑战和解决方案 +#### 路径爆炸 +在时间和资源有限的情况下,符号执行应该对最相关的路径进行探索,主要有两种方法:启发式地优先探索最值得探索的路径,并使用合理的程序分析技术来降低路径探索的复杂性。 + +启发式搜索是用于确定路径搜索优先级的关键机制。大多数的启发式方法都专注于获得较高的语句和分支的覆盖率。一种有限的方法是使用静态控制流图来知道探索,尽量选择与未覆盖指令最接近的路径。另一种启发式方法是随机探索,即在两边都可行的符号化分支处随机选择一边。最近提出的一种方法是将符号执行与进化搜索相结合,其 fitness function 用于指导输入空间的搜索。 + +利用程序分析和软件验证的思想,以合理的方式减少路径探索的复杂性。一种简单的方法是使用 selelct 表达式进行静态融合,然后将其直接传递给约束求解器。这种方法在很多情况下都很管用,但实际上是将路径选择的复杂性传递给了约束求解器。还有一种方法是通过缓存和重用底层函数的计算结果,减小分析的复杂性。 + +#### 约束求解 +虽然近几年约束求解器的能力有明显提升,但依然是符号执行的关键瓶颈之一。因此,实现约束求解器的优化十分重要,这里讲两种方法:不相关约束消除和增量求解。 + +通常一个程序分支只依赖于一小部分的程序变量,因此一种有效的优化是从当前路径条件中移除与识别当前分支不相关的约束。例如,当前路径的条件是:(x + y > 10)∧(z > 0)∧(y < 12)∧(z - x = 0),我们想通过求解 (x + y > 10)∧(z > 0)∧¬(y < 12),其中 ¬(y < 12) 是取反的条件分支,那么我们就可以去掉对 z 的约束,因为其对 ¬(y < 12) 分支不会造成影响。减小后的约束会产生新的 x 和 y,我们用当前执行产生的 z 就可以产生新的输入了。 + +符号执行生成的约束集有一个重要的特征,就是它们被表示为程序源代码中的静态分支的固定集合。所以,多个路径可能会产生相似的约束集,所以可以使用相似的解决方案。通过重用以前相似请求得到的结果,可以提升约束求解的速度,这种方法被运用到了 CUTE 和 KLEE 中。在 KLEE 中,所有的请求结果都保存在缓存里,该缓存将约束集映射到实际的变量赋值。例如,在缓存中有这样一个映射:(x + y < 10)∧(x > 5) => {x = 6, y = 3}。利用这些映射,KLEE 可以迅速地解决一些相似的请求,例如请求 (x + y < 10)∧(x > 5)∧(y ≥ 0),KLEE 可以迅速检查得到 {x = 6, y = 3} 是可行的。 + +#### 内存建模 +程序语句翻译为符号约束的精确性对符号执行的覆盖率有很大的影响。 diff --git a/doc/8.2.3_automatic_exploit_generation.md b/doc/8.2.3_automatic_exploit_generation.md new file mode 100644 index 0000000..9899901 --- /dev/null +++ b/doc/8.2.3_automatic_exploit_generation.md @@ -0,0 +1 @@ +# 8.2.3 AEG: Automatic Exploit Generation diff --git a/doc/8_academic.md b/doc/8_academic.md index d243381..7a73f19 100644 --- a/doc/8_academic.md +++ b/doc/8_academic.md @@ -13,6 +13,7 @@ * Symbolic Execution * [8.2.1 All You Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution (but might have been afraid to ask)](8.2.1_dynamic_taint_analysis.md) * [8.2.2 Symbolic Execution for Software Testing: Three Decades Later](8.2.2_symbolic_execution_for_software_testing.md) + * [8.2.3 AEG: Automatic Exploit Generation](8.2.3_automatic_exploit_generation.md) * [Address Space Layout Randomization](8.3_aslr_review.md) * [8.3.1 Address Space Layout Permutation (ASLP): Towards Fine-Grained Randomization of Commodity Software](8.3.1_aslp.md) * Code Obfuscation diff --git a/pic/5.3_overview.png b/pic/5.3_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..07e696c01d106ae8765762be1d8d42fcb8312f83 GIT binary patch literal 39472 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 a>RDUuyAC z&lUOEMW@|Isi;q+oOg*!OS>t4K+qw^ggGHz|L$_e9XXqhblC)Z8~exEnfIbK9qgG! z?58U>$b5z*82Ad?Hk&6BW*Qn3!($B#GqTMi*36 z&WDQevA^uzaq!mo4matqJbl4rM`57i^1%ny>jI=g#)_4nz2|KR`YJEbMyNv8FA zr2e-1a1Gfb=d9DoYNt-oRWE&^c{DZESFF4^J(&CASYzA+gpoE&t;en-7dO||)}9fJ zKEuy6I<2FvO`fkGvW?@=aF2m`{ NtH$9JDV;EOsk%QuKPH#o%g+~{9;%|@;7D}H zxhtl>b3o1U@h!St)X^GxBU6IW)SD>jzTLNOBX?_0$ljxTOCh&M|7wMPZUcvF<=L>E zVvRX>6Y1IvTVsUXN9wjjEi%6>D;s|I=;#^2zg~P+-^1VAz5P^ZQQuOau(UR;A;1qFVt6I^c2sySRkJ$oTl3FJCMz`r{>R zXX|K0PZ;8FvHGYvexK;cz5Ud*f|{ivLCUdlPitJzNJ=ruwfZk#FqK9oWBsjdk>#A& z#j^1l@?$gp#>oKW!bIVQ=z?fLWP!((H?*qQo< zhAsEF<<)R4{Cs+_f)c+xCc3xo*|Ud=hDNz5e3ylzqtG86i_qv=MWF`+1Lrv9d|0<` z-P&#^iGQxHE{P2c4tAs}Q$Fc&2n-C|&CgGT7qw-}maDVFWO!0aQrYFH1h>zDftw%7 z`*Y#>ur#WzTW=WWtHp|#4uAj7Hz#2o>fWv&IX~~gdGxXtRb%?`drG-Ib?@JwrfR%@ zfBVwPib3|h$*KO*2lwyq4xBOfUki$eV66ID>eQGKV+)Umb9Q9!k(cLAN=l-lr47W*FI?d5D{;;}{3}$<#+b8+@65S# zp&=}y)Hh1}H~a?5+&7h!l-Tu`Qrc^t|MJXG81{{K-@eq8 z6cUzR*PCOUU$T@uVsCG+H0vPA{!rSTTs)rkZQ@~;BwIs6R(2@|UeD}MBPP1Oi%~4n zDx2ly0WaP%eRR5*J`*#Sr?haB)-Cka-s;0(s>=-AqL2S8hW6sGin!f&0*S!J)>e8)W z!dE&Oy;CTxVrsqwe7G<1BsiGLVoWenUsd^D@@mlBw|1*W2l5c=zUNc9na(#aU%qVD z^*HPl3-A8@`?0eW{3}Taa26z~uZJ$_r^k7=>w833_^mCEeR`HYOE&rG+1|XoybO`p z_&1SN3XF`5_ah?esubc>C2~{pr~ML*jEoFRU3PsaFuxbM|MZu+uT58{U;b!+W_8?W zY2-E)71fj3>M)MOjakWlcafZqUD`D{-m>5*QZQKMy*MpZZ7%WRTm*&lwN0B^PE|5; zafRR7#&P%8Qb$LJ;meErzQ21Eq8LC?+tI<$bdS5~)%qXNbLAdeISx4~Y^<-fR=Fap ziTN&jR4(*6rgb+8>dR;s%zr-VwGSJq&}C3&b+(>9?&uW}<5HKf%Ts+8%k$%7 zy)X7N3mXRto0Oc#@gE4>b0gv4;^y356`H=z-ZYK=J`Drf!l>RfCuirgXU<$tOXGQS zLHxpn3&Z{!E8Nu^>)swSL%Z(Wxf2{3`Z|2q(czhydtz3NyT!#LD){4XJU5@9q~la@ zaL5@_pe{Dv#=^pams5Pb`R0QC?_}e?_b-p%tHEZOqom@^BI2=dXEkHoefH zN3iVW%aO&;{>Sa?o~T5NE3=8qyQ!#b#vWvdME9uZs^T1_A$D}Mv}m_bP(+*)*-!fR z0S3e}RmwWyUbY^2?lXU!W;Mecp=_qSDAj`8_t)eaTaPAGT_w<>BdcD3<9r_x;nO@e>uzt0{Nv{ovr>w?$DQUS5?S za>}=8_wb~-43>{Oy>Dp|pU;fZ^74{#9;%GDw6YT5qFM$OKYW@M;L zXd7)i@7B(@e}7j?w2*!Gle5HvNhh*(wa=g5-SGN#`|_Wk0umBBZN|B(xY)~z3LOuR zqIV1Cet&~__U;|;⪙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 literal 0 HcmV?d00001 diff --git a/pic/8.2.2_constraint.png b/pic/8.2.2_constraint.png new file mode 100644 index 0000000000000000000000000000000000000000..c1dcd54a92aa0ae53d0382f8195b159acdfa5c1b GIT binary patch literal 5168 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 HI`Y2&N0Y(- literal 0 HcmV?d00001 diff --git a/pic/8.2.2_loop.png b/pic/8.2.2_loop.png new file mode 100644 index 0000000000000000000000000000000000000000..7b7b67a011b6d9fd70fb97a0bfd83c0d9b1c3a6a GIT binary patch literal 20926 zcmbuncQ}`S_&$778JVGy$VeK>&ddmjLXu>Uh8?oA%Swv0Y(i+5**jE{oh_r15kgrZ zJm>rK{r-;UkLP&)c#g+$eEOL0_kF)!*Xz2@>paiv4%N~;O}CwGJ3$b1YO2cG1VNU9 z&-(?Wn5nOc3<%NdJ*N;iunA5L|?s@<|kA!>QmyhQW-6U$OLJmA*v`m~5A_^Spdt%4@BRAzcpI4+Yw)_BWV1P|_{VQzA?CeY zAsy_&<^k-Q&aA<7PX9lCKt}cL^`)H4SFTV>Gt#bcuRa+&!p|?YlhTWP%a)Pv-}R!j z4m~c}EGRB!&@uDT*4K}Tj{ZB?#Y+1j-?Ej5hiAgYGm5|M=fc?7SXo(_+^@=l0+*%f zzWev@Ur1N~*%8dTRBk5PeBj{0y?gdt@6ElH-@c%B=FHufFMke{I)CZ!kERJ#<_UDf zpNLwv92FGgd^_hk`)9P#!oor}M=4qBsi0|gN{Z8TZ{GUavb#z0ix(3MKRb+!j5y_e z7k>Z#xjs}`QK6%wLrY7$b?esET@u0Te7$PUEZa{R7#Qg3d6@AtyngZGs9vsF*Q<;F z{{3qTQs%ia))aH%#ED9~A9W!NX=!Ob{SJuN)RJ7pDUg}KV*|9(I z#Le&DzkmMLm7dOrpZ@w%OhZN0lqef_CM`HPc*$uN@1(38m{1}-Em5NxJ2E=@M4mDkkO-kBanYW|}xMi`jvZAD@m~B*AJ5cfJ)#Ox9PUWz% zt7~Ce+JUK>ukPEnZjG1st6H8~rr_jEdi+?Yb?T~x1rya)g1}lus&beN7TQMPm**Xu zy1SP?M(*$G>WaV5T<3eCx|>m1N9XagXIz||!%M%uV1Wk)2VGrU&YU@8V`DSc95+5T zwrlrp38x>bF4N9GKJJi{ld~wQ^jv&(`*v-*MqH6yU#)tOth2j&Yhz=%_llFMDi!f{ zWqv$6JKMH9Ge*wGQ&)Ev@$A(ro7O~GUteE0H@6!%Zfx7O?Vx7-$JSPNSJ&oGpUOOb zrvwM9xVS8QxW5+*%)lYNFxkZ~BO|kCPfY6Rh!o=o4L|mu4wsaXiQts4YTTb$TU%Sb zxnX$rEDfP$Vp8R`JR{{i_IGWqHD2n1fq}G)%wFQ_=;%)DKxE{%$;nkj2>mfJ2?=?R zIkSy_E15JI=aPmpE?lDB+r(8aZr5vOXV6>DY(_}r3j3gsG{?2g+ z3Q0@H#>IWX%PX?(-P>4KcfrswjK{&wE|Afr#POt_UP*d-x)LodMO{b7BW0fCKAPPE zcS1wc($f{Gnwy(7G&I`(aLBl^?%CtIBH-=q-PzS8b97;8sr&Qi$(3LG%iVrSV<#QD z-{lT>=D3Pc5{P4h@bL1waOm;G#KftvU8AF;xYghD^NpWAkrOKSSkGU)xRaIjV_6sW zVZvp#DMqxkq$HSj&+X4fN%+H_t}YIF-+zC9ycUHx8F)kegG#rs^-dO>%rYH!Jn{lwR|x3&}&6%oY6 zix+VUQ`_5KPx$4Ol}S(Weg6EJ@PGPrSCRV>KE7Q$cfOC$dinD3(W6I?94Yf&`BUyb z`|+yC-jEZQFJGP=uC}av@T()^oZabO4jhLThl-akseSllqvd>7yIx<~%f{A{DBJk^ zh0t_Qjc@GK3{TgFVczASJ9j>&oC>>o^(sN&?T~J-U%x()JA-@MuX0aFMC9_|yQZdl zVPR80J2LPi(<<+iTMCCc6i=P@Lq`mg$oxvJy&Z2C`W(%Kma4r z{b+cE<7{~T{4Md9uU?T8&rFKw>D=^Ea&lUmn=740KOq<K86_Bo51^JbTvGbJj*^dbw6JHh@viYw0LI|Lcm16Cxr^qb&4H zyLOqBI*lUDM4vq&D~qdi|J6VG{d-DgCOa0bz8+s5KXBl{o;`c~{QNXDn)xqfqxv*F zIyhYIXNu@sUHEBYVj?@Ms;k@G*4EbFFD)YCgk(P6npEw(URF}_H}6V44lY9Eh0bK; z{?p{-baZcmj5}(jX|->2YwISe zQc6n7^6apLxH#W|1C@T8a>Bxq>U<$VLBbI>G0&erPd}HG_~60YG9fv+q5l4|C{7Ot z&HKXB%cuSxum1k)*RP6-icAg@EA!T#H$}z89adu8+}soaHSgc&&EKFh4^dt1AP=Z9 zlWqDjK0fRB;;KmB;NUv)pq2RH!#{^Ay(&-aly#ZV!X1@5kFW0861@J#_kEQVL2z=K zjyKiT*Z0gXuHv9rJ@yZfqW?ELr?_eO_51hBvautoFYeyG%deZMP#=foM+H3LI;kUA ze5$y9QJ#W!?b>?EX=m2GRX%GfJdxYCZ!ah;^s2sy1NrLWYt%>V`rOFnx?Hlr4t5GB zCnrTk#m>%7S~@yP>0PuVC*sG1X!ri`ZLgA|trOC$v8J!fJxQM-75*|S>r@ou71pJ* z<_DX*Iy*B>DslAeI$xY$o*5kRP_IsX`t<3Ikq`ITj=##xoG#}dA0OZRd#AUjv$Mcw zZOM7OMM_#)&i9|kv$~qxjmrm{vk={%Ka243sVFJcefTi8IMu_>FjcI?#aM#uU0Pc0 z#Svd!EuYUem}5Oy=2{m_=j`Yx>9bmppFfWyN+HcdI~64tQIMXN_9QB*H9=-Kp^&D1 zTuiK~scB<I6B?=KK3(*+wM^f`K98-n}Mw8t+YN`=JW!t5*wLetw>uoc#Ou zFRJX+)D-2`tyjUv>iJv9YneF>a6* z64KJqVZqhBeSG+WNwu#=vKFo&Gb^jwXYGSYKCAeH)eDdEtEzn8-Pz&l>bh=ywT+7@ z^lLR!Juuojl&8t=N3yU!J9m1^-32XEYZ$4iLj_H%*k#=85cgPml)iO`d4SQTGa8xnoN}4Z zpTCPo+L@8x{MXUl9h~TEXkwC`mKIcQnm5cQW1XFu*;HR25;KyLntBmH@W~S?w%)Jr zyw#PJl$22RLbPYqk;IIVEdjUq_wQ#0Qk|Ii*x2}`tKS_hZM74SwSe zQ4LA{7Rr2(ey{jZ9v2;T&c%vR6S)X_0O|!hB{DKHet!N1vpRv8 zxVW{|)$X1iz(jeURTf27PEJ8CE;DQEQlB+96d1fP%Afc8>P0=h-iC&kg@woW?^n{% zarxC>2(W~=;bm$V8mhu_++SweyI01tB_08XD+ZP3`vg)kcw{LfM>k@>#eD$+uW*QoF1_Jx{*Li=wosxp6_p`A% z5~H4o0A^_Ae*N+#lGr+MHZXXMDRA|)mD!lDc@_O~^m4Ip0zuD?dK3-m--47dnoQ)D#Uz@Gow{IVZ zy)K7ilAI44P7CUZZ_5l?zDEbo85kPY)z$g6?8_V8w>OF<>BP-H(|!5C(evZ2mvnUO z?Cr-Ub~aY0_4gZ~R0{}X1CK3MjP>N0qQZHZWITVajQU_?6km8oTT?R}eT1Q*;b!V+ zCXg>dSTx7J|NS&BE)GfWzs@tuuvk||M}f3+e!st;3ZG@!>%AI3hU$)_*5-2k`Z0ow zpFgbbO9-V4VO_iESqD4()o`ZSy)^I z@{{uPUNQW$ybP4Pg_xL}M6p2kgoJNr$G&^_^3pFu>@YL)BcLT8pY_%x`T6&EkqZ|u7Fsm30X|Gm zPosgPO0KG^%FT7u(_;;&iI%+a9m|Un;p6T7?%g{ymB)@Aef;>bh=>TFM+p7CNI=(f zapKpJledy51N}-$dc428Gc#yYh}Pd%he6=z(aw&Ju>1E%jat_4cXfBC#9uTrYBCej zl5IqrVqET~VPFue%KPEN2l3;_fA!{VA#$%aJbeC~7x-K$VArl)jEe5=?!?=^e9Lyl zvu7LWUn8^2PizlTG|yH_ZFg~T(TtZQwwY7#vJc;QILKlen0e3;iNOi0}`h*{w*0;zdRv9kjHx2nYxe z{%CiES!vns2XD`bi;h0wx8V(}0<@W9QhA#ZrInn}Op>GH230~y*!34sD|(GIbU_!@^d9$&k%xM(^9E9x3s+t^&r4mfj6 zJyz^6DzqXi2L~NDEe*{U0*x0)8l=Jp4;ZP;k;DiET$EyOXJ?=<6;KCvAa;`QFDNKz zNlx(&{A{GDNq@$f7Vy*T*_PL@ULB!IMt?(ap$sT`;DF4TRx}-2PGLqH(`^|_lG6F|m_xyRB zl~B}pFh^(*%4y>&-2s(@nAmSA_%pt-59&YJMP2TFTJ}X&)-UgVfkTJxtlj~tA9uE) z-Lii8Aw9v!!ZPsY8qK70jW6TLlQnPOzEyj~7ZV#B&MKTz_ZruY#x$W=L_)$+?(?m< zIGGbC1{xZEZmh2%uQ4hL3JQ|n$~CVGmi1Z!TjTrZM?+?7>|bk-n>W`A%Wp;;P$H@HCqO))FQE=J~6PAQ@ugH$#HBcv#7{zqAeN8 z+2W~|#SsAki||mO)`frZM$@gG<6@UgO{h81O{r68V_ zm9gzC-Ad@_>WXZhI;i_!Guzv%M@dQP<+V2R83@I9eoVvHS1vz29gQ(o+qA-?-CP5S zt}|#j06EFh(h|+w&Ye$4M}%|v05`X}g~ijD7%6o61zU}$2m47Mcga;|?;u`{m+tLa z{rgu;Ts-B{>4<&CCMMy!SE}^42Yqg9Q$Sm7scmQ|W7jKGuz}RIb=x*U<1*f(NAFEe zBYUl&*n%?J#mr2zeLFef{qJvHL4gj!LzNeO_pjk2EbCOhC!4iS++AsLx30|V^D z*V$PIbMtS%e&I3)=P7TmTdx}33DwL%my8m9b77(#$TnWub&}!k^zxsH_WcWY6j9AV zYjyf)@-pofFuEf>2%bbYQ;%Cfz;|Y#6iM>>mm;A0vc_~YfmjP12jD{xpZaGjf{7vL#Ie+}wOY`|Q~;yB%|W{yhY+`ffx7B{BE=H{jpm{4J)5vthGtZ#}6q&}~vk89DrK zw@LaUek?cX2WS9NF=%PoH=&R#uUV~PaG2#2sO(+%=1VJzG>{cKi&nLP)Y8(@nS$pJ zJyr^#*GQ1=`uK4I{RiNLGS7~|$>B>tGoV$l1=iNq1c6k6a9Pl{wY9ad;EN>zicsar z)-T|Iyf^-pf?LHp6NDJseRaOn$^EjD&SUD@+7B}_4x%~tTM9Ryo@nhlghJ!DzPS5f zw(XuDh%_>yH{bGH$mqt##@Fh*ToZRMV{^p&TU%S@k#te_gjgMhDk8yLJ$!h%yY#u% zA@mL`J9jS5&tEzAxq$*4%9bqwA3msnMFyjmY@m(K{@+ZOBbYyx(T76Q<5xDHFTM}k zJ@Lt7x?FlV?Cw#clD3u>`oXun2M^Ypi~v-7A-z_5NnlfMDMX{WK~sobiHX@$)}9a& zLOGc8#;#8U7{2>D5ZWeaB$F8=+~$@Rdo-pXb#--hkx7v;34(?u47>~w(Q@vw1kL*T z8@&qVqRoKHl^(xqdwZkv+y8}g1-{(0wzE?|dsc}AY5My50I@UAy#UO{T`64~O$TiQ55zwd;Vl~r%DVmp8wN_R1sY@^Sk>-p%UzcH8jZB_-i3GjHFgH`l|s=E3BkP*@nSa$RU^n?d;QhK^Y)V7h0mGLCB z9#*!tImYF?cE(LJ-B+1kT1rG`88V7;5W>K@w6LJuHCncxi!1j^J-wgbCU7%aeFulx zeMdgY`mE{z6x}?Zeea&Sq9XZ|Gut*fvX=^d*@M^Fr=Lrq%52%P1s!tu>3JC*Mk>7C z*!S-|j~XCupxdV)9zT8hP?h({lQNXtlP6CWq$3amC>i1t625%-a{hhs&G|9cJ_`^z zpvu(M)zST0v?lsY_X=B7KA?vrgv?cb;@e=gUp0F8a1I$@(T;gT5b?&v_QqyrT#>3` zqN3%#>z?Cp?Em9{$Gpf0Dr)M&;^O?LM@rpiO`?7kgG(e#aNk`$O%<7 zH7uzgARI6}n9p*fd_bCV8_lic-vIi6of@AW<3Dz6eWo0Q1qdyw?b{zdeTq!G@`V4A zbmrT}#=Lz+g#4%R%?1$5lvIl z$0jN?TA|N9J@uCSP-`ej&>T^>?aBH1KYuQ-$-DXZ$P#9M=e_}1Zl|NWZeNDyTU z&Bmp__W&vn-UwZ#v$Hd*T%2)-RRJK?kth8tWz0YZ-67YDi;6xqHj2*1&%W6Z+P%96 z1VyOw<*1Ml)+OhKl`<(Xub`F0I9OP4z+Jz;qXwa?Nx2lK|K@4~PzdhO+R`$FVk;Cm z&`J#^wi7WF$cRmew{Tbl=I=aw$YeYDQ~lz_uAZKrw{M@7x0|Gci9wb}tMR3`H!v{J z#kb@;7-o8QNf7Z7B3}_rAikn=@N19&-0XEvpB_iUfs_X(xryAFbxCw_#mXKW(S;3U za9$oBk!znG`?#1jJ~xd7=wK|z_&4ruhFNC~N{t1#qNC(;=BqMiJ@hxqwJ0t1g4 z7G*Y4ezdW&QcsXxY)?H+_~QWIxkJ^>AJfs%f##&lE=hswfhw=doxA4poWHT4b`D1R z`f91|WmBg&I}RN_4BhIOQ3)gQ_Wk?g*Zaj5p3R^dq4Po2Kk@{u)e3L`61%Ft*G$Mkvl^>a>(e;&*IZ*+7j3MUC6K7Hi0e*_-!CVm6mudMU_0hP4P( zLCY((LWIK2o28&)5zcyNeMiT}W_t6KPM-V*Qb~58Da<^xch7Bq#{S;kOoPJhgaQ{M zNR=Ds`KBq)>*yRkbZBmA2@#-jmTm7|5T&S;a=Ew6t9Q7Ck7?;&S5s>MyV@Ej!7whF zDUbZ;B`FXG>H<|6V&NR1b^(ytR=?3)IgrsvM99wQW;CLOzLg)?D=gmG)59s{^scql z0hIz(>8i-h(N9la1Uq_rSA<@YAvgU$UVzXBkR=51?b|n83{ox*QKFD}?bBn1K-(x1 z66Upm&2bXWN1|~qQHNJoR={3Op=6=l#Ys2}mAUd0T*r^Q;^o(ter+KtJQr;cU#OrU zEW6s<^&w!mx-MeN0I9&Xv>3d|4nXc&d@y!L`8!DI5W2kvJ*aj{8WwrJ^@R? zSo*}f}P8cA2Y-}t}xW0ZLlwa4~q2L{m zE8TOT;44sF(AGv5Fy4}IHnp8A5En7gRZ=1eUK?d2QBGqzqJGTT;O5Pn=sHs%Hm9aS zgm<0$da{LYSU%q0AF>@K(k3d~{ZFZ)NpIguK_*0p-&d!B}1*0nOQeb6IMm7hu_{`Y{2#crJlf5ojzTUFj;bXP2ZO>?o@;9c*xSH2gQz=i3tbb*Yq?< zhvrDLPoF-44!D;NG>fiDE2tb|v`fqwL14YmAI!|my!gQqyl7GlxZ|(N``wU5DqJxc z(KU&juBoXBvJ%tBIHl;-7OKX;Rvk&%E;KZH>*pa)Cx@?J$eB0#D@9&Ikm*>t|h z%@q2w|EERV|8-M*5L{xvFEgc=*8t0a!@d@WxTL*`8>gw_0*V#O`pTt|Zw>sDM zx&i1T#Q|JU1ngjCr6L#^86gYbX4F2!A`)|ym$$RkSUvGXX`|&{H(%9W62%Yu$JGWV zY>x|doWH-qwQC1neMx-uXkIDD6eO&%81J(Jwz_3b7FKuqAp~#cV zC&+|rJ-^S(@xcW@}d?se*_T&Min##&bz!mJ$hkJW2 z=;=kHP(68a@%;H6%*^?alA%AN<-jQdL*xtG31JEV8i6?Y#A0$?%@!#vEG#TER82>x z6TkAG>v6ZE=1wI%*-Q`lVxDT&!0a}yhZeZhHpudkLV7CKmy(tn~zBJ zTyDSY$Kxizke!uv;86qa^>0I*Je4PpvYJ}xWO zzRM_yV=u2^XEZdxz|saOuEf-E0iiSn2vVI#z;QniBzMU2uD&6Ym<5QWGWNK^sIwQl9 zVKG5ydh<$7uG;0xDP?7zj*de0XVT1$LeR&ik@O|+zi*B7E?!J~`BKXNyeskv=rmXg zoGL~^)?0U^=Lw+AD9q2dy?#B25o9>17iaH`-mi6>&glHggx7!{GNAo{&S>O6I-@5>h))DomlXbWeb9+h(XK^3GZg>M1eg@v8H zd2i1_xzjWsOx;Ken{YAXkDV1{D$m!WUh!mNheu&0Yz6 zL@wN0HBj7TWY*B;=^W|$^vMRVfiwkAOnXmHab8}Ggo6nRVs7pn?jLm3af_yCs7)Yy z-wd&$F&0PO2Z;$l1>y_ZKD(r&|4lD6Gf7or@87%;F)^{XN?Al$*c#c& z^0|=hKTs#h2zGY%HbtE?Q6P>73dp z`qb3aI)B`oqJ;^6Fpp7>AA|8HC;qLkx65oJ(8RDQ-kHpDAaT8a;cp`RVJd)yDM2%Y zvH!~#QTgrZ0DP$}kG_62^Yz_m>534}Y*k`}K_yk|5D5rvtj&^GyQXM!*otOmK1ka4 zy}5>#TgrXL$o=9F)mHL6{>&*5bGukrpkae*w8K42MA{)?69hUFompSN2ZC^6uJZTy zudH0ZyOY1I2uc7BCeHnff1cy4dJco*qodmh@T-#2(%A-ucNMsB%gL9|SQUbQZv6NW z$~zn3IQnVl7+*r1V#ikUlL`vNVEayHX3@*4Q81h}!swk)0aw|ERV((3U9Ue&_hI3hf z(XMjW0bcCv?36qHy6l|NPU;wVaXyu5tD=(9me^D8H}W_`^v`~N_f8qjYu#&PwD$J) zgyQ~U2hRD;6Sovf5RoLiOT5&h2M=K@lLvPrwQg6Vn&ryPM+~%}Fil(jnAX zo9owq zFP*40CI|@$cNLWnXxGov;1wAakvoXDI7aXp37|<76g1V9{-h=(Z~o!k3kI?zPyf!# zva^f>z zMN-K=eL4e%PAqKo4;cX;3lgl=gaU{Uggc!a&If#*U+U@t`fQWa(?75)vC4Y7KnIcj z!7gsc8kn1sLQWDuMBt4Z(U3kt>&us&(5eBeilMwch>g8_$p$OJ9_c+BhKv{&8JjUmNFuNnvwFKO`Sb+_AJO)|7_ip0>))JFxd?&Ep*cVPRjuW*`-}?n%ge{rYug=2n82mvK;Mo07-8C}Ju*JdAbHG9)EEc|jY^{e8;*z>zm0!4QFRn3Z=3gS z0xKdX0!2TLiaNdg9dCo4!sVvnXi|Dv8FB-}PI?zEw2cvRNd=&DL{6MA!g+7T@~~cv zd#f-^<6*|S#JsS4`ysG1Ao_?pCGjFV`{~1nwG8GpxuzOmdO-}}fZldy|D3F_H`u)T zj&GV2NYWF3--5j0IdUX6DoUd57G6glE@)WC9AmG1|Mrb!GXbh4IZ;hb<=ejD=YGBC zoFPxalY-JRZYEY;4%z_C3rME#o<*!nQ)Yft-zVBr!CoWgzu75N=O9X8?m)lOZCPT* zD*m;%nx=MmcoP@PPCM$})7`C-tmPP9mupHFcQ6Z01q^~<3P$b3ScA>kLuiC=&{o;g z*ZFFcC{ov>8yy)Byxc2Db?MMIg6;m(#KaAV_}EGFXIE;3GWUCb{zQg@0qzvl5G}(N z4w_(dj{k*ZYyacNDizz!&i-$#d9U}qP;=Id+?X*qRYyifP@TRE4Yl<7?-Bsk(tDAb zdg0Qg`o5>av}>YykH*j)6hJ0Mg~Usvr;d91)Jcd7U!s&iB&VRHbk5bMt=rI>eqIWd zJ=?fk*U<3G+qY)G(-QUrUp@4&C^&fR4!i1dsXa#X40CTx@F#*b1$JW zfB|eSFfeGd?Cha|feQHV!b5`0Sw9>G?+KLy*n~t6=d*mZX zZuK^30eYde1n{!IejRJEzC$Smz2$vSL{wC7N3vLh7nxj#mPs{L{+x%ro(>+BKKbwc+7dIeuMz;;n1Dg8|QrTlm4ourqk zzI=q#b0g<~fTnz9MWxhh&EQ7XVREJ^>;P?U~^W=|BZzI z&l3bai?Ue&=vYp9DHhtgTsd?_aH_4$*ccCY7?_&2nhE(T=#V0|?*02yJdsu9Y*ntD zB){MC|J&rkJLoH}CaX9HP(BTC)YcXZQ(cO2z2t=#Kz*M~@C{cKg0rU0o$f zA5D~F!66}7-mp7&K-dJLCl1Dkup&Q&StA;bnNHh z0Tm8)56;l4@(l<`hgt4|fS@EF726&JpAmBFzm6qH=`dzS#m2r$PhVQEcc{q*`wkH) zWhWpv$wlVO>dq=a3YBZBqB89=fCRWLk=cliK2 zF|)ao9z;ZRuSlGKI+miJJSnv6djmF^)Y&-C&t?z1!iWIBYqHpKtNfcs+HvOeI2S$5E4-{mUaZqHQ)hjqPq?rLTp|)uxid{$b{L}Z)s(5>! z$oT#bgu6rR7+0XUxcGEhDa7cdrN4mE;N`^DL84jUJ>h(g_$5}aasrAg%D&IwU6s@W zC~y|dU{r$w1E2kbPHbUm>F53kiv{w0?C2NHKM`|Clp9TAmbSKD3lrz5%<-paJKTF_ zf8E@3Uj?0eJ8DmRI~f72{Mo9Y(rbBXgX>W~x|uZ6q(E+AA(%-D0@Z23cOD@NR|Fg( z7MHRNK>Y-#Q*W&Wy&$#I(m~V2SATjNCpAmOTlmq-5nn7xT# z=}(0&I0eGD- zm;ge2@7_4{Sinrv{e@>QU0Mdn0KWqVlQa%{q$;RQdOEso1gwdsWiDy}3VnSy;kQXx zhM@0_)q~;y-I0=#61IaG9w>noa0CNZT)TD+a~Zfv9E~;;d>^zZb`c2Q^2(Jh1jy`a zOuIaIparKcOrfhunAQLbWo2fj1&8^_2Ra-C(CuJcE@WuJO$w7S7&eY9H<)<CgFtJ0Xg}clxMz7Be6Vp;$=De*!$!u&xFil%Ry{2(+?23Q=b?q0Xf5He&p-k= zaNs?nLzNd>fwmgq+!8H(1#Q}3Wzg;0Gg z8wm=w4h_kPigvWM>0w3;jYD$BPZ*rgT|iU^>D=DkJtI;9nysx(3*si&ZtMh< zBt$j_KMwNo;i^f_OVjENlv#B0P=O>}CLTO^(1yNZ3px4GW5>X{U@0-o16o$w$jE!L z^CeyoF0;J!MMx^xV6a_)?bxS+Tp$pTK@jqBbIvXxhU52P-RhcMOW{2LW{PR*>BEjf^nE(AC?ErJ067Z(;8Giu@qQnD99R4h{}< zUB~$O8~c6Cu3g(k2#JdaGy1Nt!VP-~zKJtwRle(N1dz_g!p{p-+^bY>GXvDz>S}5y z>C!VYl&ByGw`Y=K^)~u!tS&Rv)`I;|ei7=>5RC&Nkb-{xZz_it-u+|8vM$w^Gb&PH z`m4?SC%mcp<=>z#f^Kji6wvFewpiQR;^yJQ#*D%Zc;NwmVR6G&;Qn?qGM1n#44lK7 z00aYkli0bruQiAgbP!lZu0Z%^$TkxSiV6x?+1SQ@{7|6k$<&8frjJ~D%>&R0`UxPB z&XJ2CDU_5_v$E(E|AJKpPYaxetPF}#^jsNyHKb{Z|0WQTGypAdTmTsCLr9f&g&CX@u#W3z{iTjaEKf)|V3tD7J0GxmBcs zPX?n+Zvgyedt(#15M8*B&41%!?bX;I=Rh0=sVPGI$GsArd1!S<&>k@_rk@>8s zSI=KfEZ9e)s6J0Z(I8&r@NUVk&0&w6qulbCZ+Fh_6#qVMU(kcwyN2Z-fkh4LA7f z&;3UYSCMFlx8Oaw0>NJ(k>Q+x8EXRe00=?D+7>%u_#2FqbOONf2^g+Bn~nALLw)U` zAhGY*0rx*O`7Qsd6DWbYT3TjRFL6xKaErQMzj9?BKB50y`>>t>Cr0h~@b2B6yLU0s zmVjFVn+-M;n(ss!Y?)9hcWdBcQsa@(y=Dfa2>*lxV-JtNxDwRZd-w07h$K9HS_Ic6 z0F>4tmI6~`apZP*`k_a#6ON0M7pctA72dja5+>*;XGrdK@HH@102IA~{%=1}0>ld0 zE;YyA62JwjC47gP84gIWKR!k_Z3;p?nYff3Rh2XbD0L~vq#1=Oc1#zas5?*i&%g(F zn^6~xR#uz;+k1ONqpbyGWfP7!SNg2&Y6djHYzeGguPQ2xE?i(H=8&DKzQGVp5Qz7| zQve{a!^Y?y&_J9Co;Ae?l;)iylomp z2fl14N%^8Oz-~K2-=TqhyQ$$!ve@TcJ_Rs!`7+O>HY)n%s637n9*&3vt7h;;WCZ4B z$hl$J!N#Dz{X{gk`8mDo?Pc8tnS_>5@Cn2DA^f2qrnmwE@@d2drekia#!q$>8IPPm z8}cklH_PCCV`G@~N4<^#oK65@Eme}2iHYelUmv|*M?B`7U@M$Iu)vRV+CRv74Pzmd zYR>4c%+jT(xIyflL7nnN;hB)%a)xKluY)~MOJDycszFm9vaax^Bd%5!=WF`$7~i=> zFtGQA)<8Yq^zbNKTRdgz^cW}&C>OD+(t#ut`Shtu2eRF^qq0T7)lKacK*|I$FA=BA zlW^iDlLlrd-D1X2wty=_YL!kiV3((6nD>F%f=Jr7fS+J+p{<~_R7$jY8wEv*7$r9b z=`e4oWJZ-78cMyIM8CNv7#|Zu&F$js%*@CL_(2jCle4n08yXoMNC*`G+ALpCfMPWC z4GaLJlFPZc1L1sB<`L%Sr)fssLd2(hJKVc0w!FR(zDLvo4O#N@p#z|12nCWs-(NAA zAkY>7J-8dHfb2mtHTmPmyT-<~pB)DYe|WkR5(ZIkzyU%9E&K97feWZ$3WXE3cN>Xg zhJS9!DdRup8LBuo3>pJCyyW~RGj4%=ctf(Y2X`mD@+|HEE!}lHC0p=OXi5CI{9&;O8TYY)y=Rh6cL4d<2 zD&d7*g^MuZ(iHu?JUO)0Rr%WAS-2i7?0FBsDMZ`E)v5CP^K)|;BU|K49P$o>IHT2w zeiwWsN*WAapn+YaIo_vZIC^|s!gIl@KyJ!3IUkC5+fNsZGHR}Uu zmfT2fj6yyj*<<$XA$dgMI3fJeOT&C^s&w)&6OoGymAI+N0d-*<2N&$;Av&K+K0ZFq z&iPPa2!i9edXn5=YwK*1-$r{|+r)*Y+_+jwEGkCk5|&|szN^XPrF-d8MtXYpXe@Fv zW?Fy`it_WX_?{;XgrJa}JGb;gHijT}=#ica&>gIj^n#Mq(vWmY3APsONGC6SO zFc73c(bfvz+;f;6K@#?yuUy?x_HS46EH#43*w|RGdY%L0F60D!sWFvv$ewnz+qo+_ zDw$v%a&(;da{yTuP!y@&(!v5p7uayh%F9!uR>d}WfJcuVqazgRU8qEtUFTL8r#^qy z7DL7r_5SOK8pafg7QGOoU6_yA=N1^A7L$)|WrDo|rFgl0DHF~&DE%C}z|XF(t>stk z7kl0olalfsVp>f8T=nY}jFBKfAcMk|`u?9Yjs?8l9I~DT5~;40p(LyP;yxiXsf<)x zyC0CodpFewLARf=wm!^etB5jzd5o@BuJSb#pMQVPYibH$yc^i^z=2V0?eO(a7)FI= z-rHMJz7wPif=Pea3mpg&X)o0p$t&W$G_8N?)HY`|_u<$39Nk_NynLw!`|kPkd36$d zh_=T4BAraQt;1IyHO5bzC<|m-f#YnvDF%Fi2!t#!4d_3{ZXA^!K#u~W z1~`~w$~hu_TQOC=8C3he(CwE2@fMUIiU7!O_!B=)*IvPK7DK(pUw1M`LTwlrm?rg; z7yz4v27z`(Z*!6ZBjCcVvk#zQ;5=YQ3F1gWJ#EBd{dNse{@<>DIc%YRFat2-%vt@2 za^(P+!)&^_c_ideU0n+Y2Q+JK*8)*WfggZO1OUAo8x5g`m91`q)J4A!9Cs<(==ahR zJp%(Jfq8uR(>ezOq^nVx&kIu9#=Yox-uO{JpxSBlZhpR~^qN^V-?3wmpr+A4ufa5c z$VBspX?pN_Mo~3*ECL7*5!QRq_JFk1&Ym4EbET*dGe$S6|+5;@87HqX;d#I zxnbt0L4g%?L~J{Wtc8IgJ6pgr0H+Nx#uurI8Lwst1Q8LO7?OgngGW)Io+KnBsPR6; zNFC-8LqpHw0xn+k!Eyv@UAzdtVJLEwv#YCdmA4d|MMG=raDg>*sIoz|uaCXGK;Rrg z>c#eFpoQ4(%`l-w#Srjj--ig!2#OX&N(MR`ur^fRV9dgLqGG}`4#NWmtCe|~(7$pr zGpAx02k;*m3bYJU=v74iGSjH^b61xu z>`_gLgQ#0b>L@elI3DM>IUJUdSjKcT@J1QU2Feo*doWjDa&Zw06gqb7I+7HCD3IBA zzz(FD@_|?IErZ`sRJ;t-iGeoo0J!P>k*dHp8@Les592ZDfY9yr_4j`=6VlB#0xJvT z5{*KDCKN+Iq<00e1$GhwdvbB{GJs}Vt~Le%@IVeQLr63vI|?^9$%_w5ae=AJm@p79 z99&tT$}wzppC-q!SQAYMtgJXOx^C<&;AScbym?@u7r!MTa707udT)#r43#aVXkf`sFQWk%vgi-M`u z0r=iRm7Uz&1n>|C4UGg*%WznZLHXg40PorV-e!dFAT?=R0>%s*?AbDIOlo8LWsa#lzl9O-UOt54?N;SkjIWz1J%uP>M z!2>1~xDZQ>RDp@|(z;jyaZypQ$h?eH*dJLxdq97nj^Rq5lDxdgkdTnVfSjTt(pcop zpMt0H3=qscIYHO{>C(*&d#>*Gpjrc+BA8E9dEJ&{@N??z+mSCn|6G7E#O1{uIqhzS zYP>*5$aqhwL@9zwGedL)tjmN<+gf`yeY8V$-FTlDz$S1BZjeLsme;1nOlDfzw!(%F zMe6LT&fo+=#eh$2;*N$Bh16PctZr~?#me0L^Fx91vt^T5PtUh)v}?wW&!|E$kObBS z_BkLhd_ereT$Sgy+Mtc%f8|gx@J>y(6n=sLp@jdimH9_y>JWW}=# zmTl9dy6Z@T4`bJJx9o%?agIbx9HF4Cll+dZ32YIf&$5MnkI2@+^yT>kAiG0{tQ6et zo3qxtuE&F$52%6HAQ47eoS49%AgCr_E+8Y0OidZ$DKjZ4x6jCXpne33$QraGYIHN_7iBvRa8`P zByiNQgMeP}hXJJz{v~j>-vzO=Zy2k!7gZ0fP6Dt*E%L5_K3?myQ4CP6Jw-o;FRbSNb1J?Wd5`Mt8 z=l#9E+yLLB(K$r7l&kJIV@!NwZeB}=A6?L7a7^!+j~dY7Z?-ID1mI; zY~hT81X2h>L#G1d(c^6Q6}V99-t^f~1dws-0MS?8QRaEjXDh}ww|?awh&1N3$!;q# z;65aBmQyuF$lf-EY(;pc%#Bi`hGI=QBw z(V?%cO->qyLcz>cw2K+Jas$qHA%f|&g7Ik|FHV%}` zTb=~XVlXOk%^${tWjz<}T}ITKwl` z6FPF2n~{n)H+q99S?lBY{O^2dHdd4D!Aa!ZqIXk}Hr!x@LtWE>jIq32AKb}HJpYFC zhX=|`LhShY^HzNj+S{@nn>GR{g*iD4713`If8Q?GUlqZ^k+ja79;K2#;FW+HuB)HO z#5BArP13ZXWN8fDY7wICj8wg;cJ<{MuH$_bH=Um!TgQ>-iJT~YKL-vM(FsdBM$>?* z^8EIwspR~DR8T$aAjW1a&;vgT+H}8Jl3zKA&o_o&K;Y?_H0(iPpWVKQdMh!{N|QXj z6Jlb@9WLmx0yQyjPcpD{O?JHoe{Y?qS7GAd+~T3*YtB+F0dRI7vDv-^~64g)$_~QJySk%NnJKUeSq)@no$V} z_kE8(Hd7Cm;W-gw`00ib*yyX8c=$;7FSm&B@Kx_BjJ*B+eWQds?a=l={CJTK;munk zlF{^A$)RYfP(gqNEmgDgJ1{P|@)fMx=3E%c>1N!^ef?7G;b=g(193`wf1}YX#P4Fg zuH4%b+-_5dc~8J9+PacKd#X1EC637^Ipds5m}otJMA-pQ!U#Tpo(Q%{|b`RZx#izhSMHXy+P1fX9Hs6iSHXS^-JfDz9f+k?>Mq{FvA z86O{yG7d6P7QHtH0&scu#npJW+Oub0ky>_zoqFA+DE4O1es`$yzs5b}w}d$UhB^qa z(t^2{P&>`n_y(MD=qKU>YlvcU@7Au8s+%QRu}4m^mNACCub!MHxxbO>ps3ugG1KWL z`w%@MDarKo+R6xRNL|A_U9LdIWX7aX_Cn_WUb-PBUXnO)wn=9> zkTmU|D5#hy-CW$UgDSB4Q}RABjh_vj Y+nz@wkaZjnWF*v1X)0$cn%(}t0R1i~=l}o! literal 0 HcmV?d00001 diff --git a/pic/8.2.2_tree.png b/pic/8.2.2_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..dd3452e986992027cbc69e191bc5997b69651dd3 GIT binary patch literal 61998 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 SQ@&ZmYx)!`vkRtisuP};yM0) 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 literal 0 HcmV?d00001 diff --git a/src/Others/5.3_symbolic_execution/tree.gv b/src/Others/5.3_symbolic_execution/tree.gv new file mode 100644 index 0000000..4329a72 --- /dev/null +++ b/src/Others/5.3_symbolic_execution/tree.gv @@ -0,0 +1,16 @@ +digraph { + 0 [shape="none", label=""]; + 1 [shape="diamond", label="2*y == x"]; + 2 [shape="box", label="x = 0\ny = 1"]; + 3 [shape="diamond", label="x > y+10"]; + 4 [shape="box", label="x = 2\ny = 1"]; + 5 [shape="box", label="x = 30\ny = 15"]; + 6 [shape="plaintext", label="ERROR"]; + + 0 -> 1; + 1 -> 2 [label="false"]; + 1 -> 3 [label="true"]; + 3 -> 4 [label="false"]; + 3 -> 5 [label="true"]; + 5 -> 6; +} \ No newline at end of file