首页> 外文会议>2013 20th Working Conference on Reverse Engineering >Static binary rewriting without supplemental information: Overcoming the tradeoff between coverage and correctness
【24h】

Static binary rewriting without supplemental information: Overcoming the tradeoff between coverage and correctness

机译:无需补充信息的静态二进制重写:克服覆盖率和正确性之间的折衷

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

摘要

Binary rewriting is the process of transforming executables by maintaining the original binary's functionality, while improving it in one or more metrics, such as energy use, memory use, security, or reliability. Although several technologies for rewriting binaries exist, static rewriting allows for arbitrarily complex transformations to be performed. Other technologies, such as dynamic or minimally-invasive rewriting, are limited in their transformation ability. We have designed the first static binary rewriter that guarantees 100% code coverage without the need for relocation or symbolic information. A key challenge in static rewriting is content classification (i.e. deciding what portion of the code segment is code versus data). Our contributions are (i) handling portions of the code segment with uncertain classification by using speculative disassembly in case it was code, and retaining the original binary in case it was data; (ii) drastically limiting the number of possible speculative sequences using a new technique called binary characterization; and (iii) avoiding the need for relocation or symbolic information by using call translation at usage points of code pointers (i.e. indirect control transfers), rather than changing addresses at address creation points. Extensive evaluation using stripped binaries for the entire SPEC 2006 benchmark suite (with over 1.9 million lines of code) demonstrates the robustness of the scheme.
机译:二进制重写是通过维护原始二进制文件的功能来转换可执行文件的过程,同时以一种或多种度量标准对其进行改进,例如能耗,内存使用,安全性或可靠性。尽管存在几种用于重写二进制文件的技术,但是静态重写允许执行任意复杂的转换。其他技术(例如动态或微创重写)的转换能力受到限制。我们设计了第一个静态二进制重写器,可确保100%的代码覆盖率而无需重新定位或符号信息。静态重写的一个主要挑战是内容分类(即,确定代码段的哪一部分是代码与数据之间的关系)。我们的贡献是:(i)如果是代码,则使用推测性反汇编来处理分类不确定的代码段部分;如果是数据,则保留原始二进制文件; (ii)使用一种称为二进制表征的新技术,极大地限制了可能的投机序列的数量; (iii)通过在代码指针的使用点(即间接控制传递)使用调用转换,而不是在地址创建点更改地址,从而避免了重定位或符号信息的需要。对整个SPEC 2006基准测试套件(包含190万行代码)使用剥离后的二进制文件进行的广泛评估证明了该方案的稳定性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号