• DocumentCode
    647196
  • Title

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

  • Author

    Smithson, Matthew ; ElWazeer, Khaled ; Anand, Kushal ; Kotha, Aparna ; Barua, Rajeev

  • Author_Institution
    Dept. of Electr. & Comput. Eng., Univ. of Maryland, College Park, MD, USA
  • fYear
    2013
  • fDate
    14-17 Oct. 2013
  • Firstpage
    52
  • Lastpage
    61
  • Abstract
    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.
  • Keywords
    program diagnostics; program verification; call translation; code segment; content classification; dynamic rewriting; energy use; memory use; minimally-invasive rewriting; reliability; security; speculative disassembly; static binary rewriting; Binary codes; Computers; Malware; Optimization; Runtime; Software;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering (WCRE), 2013 20th Working Conference on
  • Conference_Location
    Koblenz
  • Type

    conf

  • DOI
    10.1109/WCRE.2013.6671280
  • Filename
    6671280