首页> 外文会议>ACM SIGPLAN Conference on Programming Language Design and Implementation >Automated Synthesis of Symbolic Instruction Encodings from I/O Samples
【24h】

Automated Synthesis of Symbolic Instruction Encodings from I/O Samples

机译:自动合成I / O样品的符号指令编码

获取原文

摘要

Symbolic execution is a key component of precise binary program analysis tools. We discuss how to automatically boot-strap the construction of a symbolic execution engine for a processor instruction set such as x86, x64 or ARM. We show how to automatically synthesize symbolic representations of individual processor instructions from input/output examples and express them as bit-vector constraints. We present and compare various synthesis algorithms and instruction sampling strategies. We introduce a new synthesis algorithm based on smart sampling which we show is one to two orders of magnitude faster than previous synthesis algorithms in our context. With this new algorithm, we can automatically synthesize bit-vector circuits for over 500 x86 instructions (8/16/32-bits, outputs, EFLAGS) using only 6 synthesis templates and in less than two hours using the Z3 SMT solver on a regular machine. During this work, we also discovered several inconsistencies across x86 processors, errors in the x86 Intel spec, and several bugs in previous manually-written x86 instruction handlers.
机译:符号执行是精确二进制程序分析工具的关键组件。我们讨论如何自动启动符号执行引擎的构建,以便处理器指令集,例如X86,X64或ARM。我们展示了如何从输入/输出示例自动综合各个处理器指令的符号表示,并将其表示为位矢量约束。我们展示并比较各种综合算法和指令采样策略。我们介绍了一种基于智能采样的新的合成算法,我们在我们上下文中显示了比以前的合成算法快一倍的数量级。利用这种新算法,我们可以使用仅使用6个合成模板(8/16/12位,输出,EFLAG)和在常规上使用Z3 SMT求解器在不到两小时内自动综合比特矢量电路(8/16/12位,输出,EFLAG)。机器。在此工作期间,我们还在X86处理器中发现了几个不一致,x86英特尔规范中的错误,以及之前手动写入的x86指令处理程序中的几个错误。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号