【24h】

On Symbolic Execution of Decompiled Programs

机译:论对分解计划的象征性执行

获取原文

摘要

In this paper, we present a combination of existing and new tools that together make it possible to apply formal verification methods to programs in the form of x86_64 machine code. Our approach first uses a decompilation tool (remill) to extract low-level intermediate representation (LLVM) from the machine code. This step consists of instruction translation (i.e. recovery of operation semantics), control flow extraction and address identification.The main contribution of this paper is the second step, which builds on data flow analysis and refinement of indirect (i.e. data-dependent) control flow. This step makes the processed bitcode much more amenable to formal analysis.To demonstrate the viability of our approach, we have compiled a set of benchmark programs into native executables and analysed them using two LLVM-based tools: DIVINE, a software model checker and KLEE, a symbolic execution engine. We have compared the outcomes to direct analysis of the same programs.
机译:在本文中,我们介绍了现有和新工具的组合,其中共同使得可以以X86_64机器代码的形式应用正式验证方法。我们的方法首先使用分解工具(日间)来从机器代码中提取低级中间表示(LLVM)。该步骤包括指令转换(即操作语义的恢复),控制流程提取和地址标识。本文的主要贡献是第二步,它构成了间接的数据流分析和改进(即数据相关)控制流程。此步骤使处理后的BitCode更加适用于正式分析。要演示我们的方法的可行性,我们将一组基准程序编译为Native可执行文件,并使用基于两个LLVM的工具分析它们:Divine,软件模型检查器和Klee ,符号执行引擎。我们已经比较了对同一计划的直接分析的结果。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号