Dynamic Symbolic Execution (DSE) is an important method for the testing of programs. An important system on DSE is KLEE which inputs a C/C++ program annotated with symbolic variables, compiles it into LLVM, and then emulates the execution paths of LLVM using a specified backtracking strategy. The major challenge in symbolic execution is path explosion. The method of abstraction learning has been used to address this. The key step here is the computation of an interpolant to represent the learnt abstraction. In this paper, we present a new interpolation algorithm and implement it on top of the KLEE system. The main objective is to address the path explosion problem in pursuit of code penetration: to prove that a target program point is either reachable or unreachable. That is, our focus is verification. We show that despite the overhead of computing interpolants, the pruning of the symbolic execution tree that interpolants provide often brings significant overall benefits. We then performed a comprehensive experimental evaluation against KLEE, as well as against one well-known system that is based on Static Symbolic Execution, CBMC. Our primary experiment shows code penetration success at a new level, particularly so when the target is hard to determine. A secondary experiment shows that our implementation is competitive for testing.


翻译:动态符号执行( DSE) 是测试程序的一个重要方法 。 DSE 的一个重要系统是 KLEE, 它将C/ C++ 程序输入带有符号变量的C/ C+ 程序, 将其编译为LLVM, 然后使用指定的回溯跟踪策略复制LLLVM的执行路径。 象征性执行的主要挑战是路径爆炸。 抽象学习方法已被用于解决这个问题。 这里的关键步骤是计算一个内插来代表所学的抽象。 在此文件中, 我们提出了一个新的内插算法, 并在 KLEE 系统上方实施。 主要目标是解决路径爆炸问题, 以追求代码渗透: 证明一个目标程序点要么可以达到, 要么无法达到。 也就是说, 我们的焦点是核查。 我们显示, 尽管计算机内部的顶端, 但内插者提供的符号执行树的剪切方法往往带来巨大的整体效益。 我们随后对 KLEE 进行了全面的实验评估, 并且对基于 Static 执行的已知系统进行了实验。 CBMC 在 二级测试中, 我们的竞争性的测试显示, 我们的高级测试显示, 成功 。

0
下载
关闭预览

相关内容

【机器推理可解释性】Machine Reasoning Explainability
专知会员服务
34+阅读 · 2020年9月3日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
76+阅读 · 2020年7月26日
因果图,Causal Graphs,52页ppt
专知会员服务
240+阅读 · 2020年4月19日
【干货书】真实机器学习,264页pdf,Real-World Machine Learning
强化学习最新教程,17页pdf
专知会员服务
169+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
187+阅读 · 2019年10月10日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
38+阅读 · 2019年10月9日
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
TorchSeg:基于pytorch的语义分割算法开源了
极市平台
20+阅读 · 2019年1月28日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
已删除
将门创投
5+阅读 · 2018年2月28日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
23+阅读 · 2018年10月24日
Arxiv
4+阅读 · 2017年11月14日
VIP会员
相关VIP内容
【机器推理可解释性】Machine Reasoning Explainability
专知会员服务
34+阅读 · 2020年9月3日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
76+阅读 · 2020年7月26日
因果图,Causal Graphs,52页ppt
专知会员服务
240+阅读 · 2020年4月19日
【干货书】真实机器学习,264页pdf,Real-World Machine Learning
强化学习最新教程,17页pdf
专知会员服务
169+阅读 · 2019年10月11日
【新书】Python编程基础,669页pdf
专知会员服务
187+阅读 · 2019年10月10日
机器学习相关资源(框架、库、软件)大列表
专知会员服务
38+阅读 · 2019年10月9日
相关资讯
时序数据异常检测工具/数据集大列表
极市平台
65+阅读 · 2019年2月23日
TorchSeg:基于pytorch的语义分割算法开源了
极市平台
20+阅读 · 2019年1月28日
Unsupervised Learning via Meta-Learning
CreateAMind
41+阅读 · 2019年1月3日
Disentangled的假设的探讨
CreateAMind
9+阅读 · 2018年12月10日
Hierarchical Disentangled Representations
CreateAMind
4+阅读 · 2018年4月15日
已删除
将门创投
5+阅读 · 2018年2月28日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员