This award is funded under the American Recovery and Reinvestment Act of 2009 (Public Law 111-5).
This project focuses on the development of a new binary rewriter that can be use to statically transform binary code that does not have relocation information and to do so without the overhead of dynamic binary rewriting.
Binary rewriters are pieces of software that accept a binary executable program as input, and produce an improved executable as output. The output executable usually has the same functionality as the input, but is improved in one or more metrics, such as run-time, energy use, memory use, security, or reliability. Many optimizations for binary rewriting have been proposed to improve all these metrics. However, existing binary rewriters have a severe limitation ? they are unable to rewrite binaries that have no relocation information. Unfortunately, linkers typically discard relocation information, and hence virtually all commercial binaries lack relocation information. Consequently, they cannot be rewritten by existing rewriters.
In this project, the PI is building a binary rewriting infrastructure that can rewrite binaries that do not contain relocation information. This will have the following broader impacts: (i) the ability for anyone to rewrite any binary to improve its performance, security, or memory consumption, or to monitor its resource consumption, is a powerful new ability that could unleash innovation and engender a new class of commercial applications; (ii) the resulting new commercial applications will be a net gain for the nation?s economy; (iii) the improvements in those applications will boost the productivity and security of their users; and (iv) a strong educational program with instructional and outreach components.