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
Link To Document