首页> 外文期刊>Programming and Computer Software >An Approach to Reachability Determination for Static Analysis Defects with the Help of Dynamic Symbolic Execution
【24h】

An Approach to Reachability Determination for Static Analysis Defects with the Help of Dynamic Symbolic Execution

机译:动态符号执行的静态分析缺陷可及性确定方法

获取原文
获取原文并翻译 | 示例

摘要

Program analysis methods for error detection are conventionally divided into two groups: static analysis methods and dynamic analysis methods. In this paper, we present a combined approach that allows one to determine reachability for defects found by static program analysis techniques through applying dynamic symbolic execution to a program. This approach is an extension of our previous approach to determining the reachability of specific program instructions by using dynamic symbolic execution. The approach is sequentially applied to several points in the program: a defect source point, a defect sink point, and additional intermediate conditional jumps related to a defect under analysis. Our approach can be briefly described as follows. First, static analysis of the program executable code is carried out to gather information about execution paths that guide dynamic symbolic execution to the source point of a defect. Then, dynamic symbolic execution is performed to generate an input dataset for reaching the defect source point and the defect sink point through intermediate conditional jumps. Dynamic symbolic execution is guided by the heuristic of the minimum distance from the previous path to the next defect trace point when selecting execution paths. The distance metric is computed using an extended call graph of the program, which combines its call graph and portions of its control flow graph that include all paths leading to the defect sink point. We evaluate our approach by using several open-source command line programs from Debian Linux. The evaluation confirms that the proposed approach can be used for classification of defects found by static program analysis. However, we found some limitations that prevent deploying this approach to industrial program analyzers. Mitigating these limitations is one of the possible directions for future research.
机译:用于错误检测的程序分析方法通常分为两类:静态分析方法和动态分析方法。在本文中,我们提出了一种组合方法,该方法允许通过将动态符号执行应用于程序来确定由静态程序分析技术发现的缺陷的可达性。该方法是我们先前使用动态符号执行来确定特定程序指令的可达性的方法的扩展。该方法顺序应用于程序中的几个点:缺陷源点,缺陷汇点和与分析中的缺陷相关的其他中间条件跳转。我们的方法可以简述如下。首先,对程序可执行代码进行静态分析,以收集有关将动态符号执行引导到缺陷源点的执行路径的信息。然后,执行动态符号执行以生成输入数据集,以通过中间条件跳转到达缺陷源点和缺陷汇点。选择执行路径时,从前一条路径到下一条缺陷跟踪点的最小距离的试探法指导动态符号执行。距离度量是使用程序的扩展调用图来计算的,该扩展调用图将其调用图和其控制流图的一部分进行了组合,这些部分包括通向缺陷汇点的所有路径。我们通过使用Debian Linux的几个开源命令行程序来评估我们的方法。评估证实,所提出的方法可用于对通过静态程序分析发现的缺陷进行分类。但是,我们发现了一些局限性,无法将这种方法部署到工业程序分析器中。减轻这些限制是未来研究的可能方向之一。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号