Binary Rewriter Writer Software Manual

Loading...
Thumbnail Image

Files

TR 2007-15 Malloy.pdf (633.33 KB)
(RESTRICTED ACCESS)
No. of downloads:

Publication or External Link

Date

2007-08-21

Advisor

Citation

DRUM DOI

Abstract

In traditional software development, the developer would use a compiler to translate a high-level language program (Java, C++, etc.) into a binary executable program. In recent years, new research has introduced a new concept called the Binary Rewriter. The Binary Rewriter takes a binary executable program as input, performs some form of optimization, and then outputs an improved binary executable program. The improved binary executable program performs the same function as the original, but some aspect of the new executable is able to perform better than the original. The Binary Rewriter can optimize programs to improve security, to improve runtime and real-time bounds, to reduce energy use, or to improve reliability. The Binary Rewriter has three main components: the reader, the optimizer, and the writer. The reader reads in a binary executable program and translates it into an ISA-independent Intermediate Format (IF). The optimizer then takes the Intermediate Format code and enhances it for increased security, reliability, etc. Once the optimization stage is complete, the writer uses the improved Intermediate Format code to produce an improved binary executable file. During my ten week internship with The Institute for Systems Research, it was my duty to begin the implementation of the third component, the writer. This manual will provide you with a detailed description of the writer section of the Binary Rewriter. NOTE: This document is currently unavailable pending completion of a larger research project

Notes

This document is currently unavailable pending completion of a larger research project.

Rights