跳转至

8.Symbolic&Concolic Execution

约 196 个字 预计阅读时间 1 分钟

Symbolic execution

概述

最后生成符号化的表达式,而不一定是具体的值。

image-20230605142515392

path condition:就是表达式的约束条件

image-20230605142722512

应用:

  • 将结果表达出来之后,我们可以生成所有情况的test case,这样在测试的时候可以覆盖所有的路径。

  • 可以知道哪些路径是不可达的。

  • 还可以去作变量之间的依赖关系的识别。

问题:

  • 对每条路径都要记录路径约束,开销很大。
  • 随着路径越来越深,符号表达式和路径约束都会越来越复杂。

挑战

  • Path explosion路径爆炸

  • Modeling program statements程序运行环境的建模

  • Constraint solving

Challenge 1: Path Explosion

image-20230605144528414

image-20230605144634010

image-20230605144641340

image-20230605144648721

image-20230605144656366

Challenge 2: Complex Code and Environment Dependencies

image-20230605144738362

image-20230605144747699

image-20230605144758641

image-20230605144808388

Challenge 3: Constraint Solving - SAT

约束求解

image-20230605144729086

image-20230605144839568

KLEE

没听……

本文总阅读量