Symbolic Execution
符号执行用符号变量代替具体值执行程序,分析所有可行路径,自动生成触发各路径的输入。
用途
精确分析程序行为,自动生成高覆盖率测试与漏洞触发输入。
机制
变量用符号表示,路径条件收集为约束。遇分支时 fork 路径并用 SMT 求解器检查可行性。路径爆炸是主要瓶颈。KLEE、angr 用于 C/二进制符号执行。
用例
- 测试生成
- 漏洞分析
- 路径覆盖
符号执行用符号变量代替具体值执行程序,分析所有可行路径,自动生成触发各路径的输入。
精确分析程序行为,自动生成高覆盖率测试与漏洞触发输入。
变量用符号表示,路径条件收集为约束。遇分支时 fork 路径并用 SMT 求解器检查可行性。路径爆炸是主要瓶颈。KLEE、angr 用于 C/二进制符号执行。