首页> 外文学位 >Transformer specification language: A system for generating analyzers and its applications.
【24h】

Transformer specification language: A system for generating analyzers and its applications.

机译:变压器规范语言:一种用于生成分析仪及其应用程序的系统。

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

摘要

As computers have become a pivotal component of daily lives, computer safety, reliability, and security issues have become enormously important. A considerable amount of recent research in program analysis and software engineering has been carried out on techniques and tools for finding software bugs and security vulnerabilities, and on checking computer-safety properties. Most of this research has focused on analyzing source code. Recently, machine-code analysis has begun to receive great attention both because source code is often unavailable and because there can be mismatches in various ways between source code and the machine code generated from the source code.;The tools and techniques for analyzing machine code are, in principle, language-independent. However, their implementations are often tied to one specific instruction set. Retargeting them to another instruction set can be an expensive and error-prone process. This dissertation describes a system that I developed, called TSL (for "Transformer Specification Language") that provides a systematic solution to the problem of creating retargetable tools for analyzing machine-code. The TSL system is a meta-tool, or tool generator, that automatically creates different abstract interpreters for machine-code instruction sets. The system addresses the problem of supporting multiple instruction sets by providing a YACC-like mechanism for creating key components of machine-code analyzers. The TSL system takes a single, unified description of the concrete operational semantics of an instruction set, which is specified in TSL, a strongly typed, first-order functional language, and automatically creates implementations of different abstract interpreters for the given instruction set.;TSL provides a fixed set of base-types and operators, as well as map-types with map-access and (applicative) map-update operations. The TSL compiler generates a common intermediate representation that allows the meanings of the input-language constructs to be redefined by supplying alternative interpretations of the base-types, map-types, and the operations on them ("semantic reinterpretation"). Because all the abstract operations are defined at the meta-level , a semantic reinterpretation is independent of any given instruction set defined in TSL. Therefore, each implementation of an analysis component's driver serves as the unchanging driver for use in different instantiations of the analysis component for different instruction sets. The TSL language becomes the specification language for retargeting that analysis component to different instruction sets.;As an application of the TSL system, we developed a novel way of applying semantic reinterpretation to automatically create symbolic-analysis primitives for symbolic evaluation, weakest-liberal precondition, and symbolic composition. Furthermore, using the TSL system, as well as the TSL-generated symbolic-analysis primitives, we developed a machine-code verification tool, called MCVETO, and a concolic-execution-based program-exploration tool, called BCE. (1) MCVETO addresses a large number of issues that arise when developing model-checking tools for machine code, for which standard techniques used in source-code model-checking tools would be unsound if applied to machine code. (2) What distinguishes the work on BCE is that it makes use of control-dependence information to make program exploration goal-directed toward a given set of targets.
机译:随着计算机已成为日常生活的关键组成部分,计算机的安全性,可靠性和安全性问题已变得极为重要。程序分析和软件工程方面的大量最新研究已经在发现软件错误和安全漏洞以及检查计算机安全性的技术和工具上进行。大多数研究都集中在分析源代码。最近,机器代码分析已开始引起人们的广泛关注,这是因为源代码通常不可用,以及源代码和从源代码生成的机器代码之间可能存在各种不匹配的情况。分析机器代码的工具和技术原则上是与语言无关的。但是,它们的实现通常与一个特定的指令集相关。将它们重新定位到另一个指令集可能是一个昂贵且容易出错的过程。本文介绍了我开发的称为TSL(用于“变压器规范语言”)的系统,该系统为创建用于分析机器代码的可重定向工具的问题提供了系统的解决方案。 TSL系统是一个元工具或工具生成器,可自动为机器代码指令集创建不同的抽象解释器。该系统通过提供一种类似于YACC的机制来创建机器码分析器的关键组件来解决支持多个指令集的问题。 TSL系统对指令集的具体操作语义进行统一的统一描述,该描述以TSL(一种强类型的一阶功能语言)指定,并自动为给定指令集创建不同抽象解释器的实现。 TSL提供了一组固定的基本类型和运算符,以及具有地图访问和(适用)地图更新操作的地图类型。 TSL编译器生成一个通用的中间表示形式,通过提供基本类型,映射类型以及它们的操作的替代解释(“语义重新解释”),可以重新定义输入语言构造的含义。因为所有抽象操作都是在元级别定义的,所以语义重新解释独立于TSL中定义的任何给定指令集。因此,分析组件驱动程序的每个实现都充当不变的驱动程序,以用于不同指令集的分析组件的不同实例中。 TSL语言成为将分析组件重新定位到不同指令集的规范语言。;作为TSL系统的应用程序,我们开发了一种新颖的应用语义重新解释的方法来自动创建用于符号评估的符号分析原语,最弱自由条件以及符号组成。此外,使用TSL系统以及TSL生成的符号分析原语,我们开发了一种称为MCVETO的机器代码验证工具,以及一种称为BCE的基于基于执行的程序的程序探索工具。 (1)MCVETO解决了在开发用于机器码的模型检查工具时出现的许多问题,如果将其应用于机器代码,则源代码模型检查工具中使用的标准技术将不健全。 (2)BCE的工作与众不同之处在于,它利用控制依赖信息使程序探索的目标导向给定的一组目标。

著录项

  • 作者

    Lim, Junghee.;

  • 作者单位

    The University of Wisconsin - Madison.;

  • 授予单位 The University of Wisconsin - Madison.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2011
  • 页码 249 p.
  • 总页数 249
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号