Barua Wins NSF GrantAssociate Professor Rajeev Barua is the principal investigator for a three-year, $349,059 National Science Foundation Computer Systems Research award, "Binary rewriting without relocation information."
Binary executables and binary rewriters
A binary executable program is a program in machine (binary) code. Although people write programs in high-level computer languages such as C++ or Java, computers don't—in fact cannot—directly run those programs. Because computers only can run programs written in binary code (1's and 0's only), software developers use translation programs called "compilers" to change their high-level language programs into binary code. The resulting programs are called "binary executables" because they are written in binary code and now can be executed (run) by computers.
Traditionally, the binary executable is not transformed any further; rather it is simply run on the computer. Barua’s research observes that there is an opportunity to do better. The binary executable can be rewritten and improved in various ways, for example, to have a faster run-time speed, lower energy or memory use, better reliability or more secure execution. Programs that do this are called binary rewriters.
As an example, a binary rewriter can insert security checks into the program that would thwart malicious software attacks. A denial-of-service attack may run a legitimate program with inputs that cause it to allocate too much memory, thereby crashing the system. A binary rewriter Barua has developed can rewrite programs automatically to ensure that they obey memory quotas. If a rewritten program then tries to allocate too much memory, it will be gracefully terminated, rather than crashing the whole system with it.
Other security applications could involve rewriting programs to prevent sensitive information such as personal or financial information from being accessed on one's computer without permission. Barua's rewriter inserts code that simultaneously protects against all such attacks.
Barua's new research
Binary rewriters have a severe limitation—they are unable to rewrite binaries that have no relocation information. Because virtually all commercial binary executables lack relocation information, they cannot be rewritten by existing rewriters. Therefore the ability to rewrite binary executables that do not have relocation information is critical to making binary rewriting technology applicable in practice.
The NSF funding will allow Barua to develop a binary rewriter that can be used to statically transform binary code that lacks relocation information and to do so without the overhead of dynamic binary rewriting.
This research will allow any binary to be rewritten, unleashing innovation and engendering a new class of commercial applications that would boost the productivity and security of computer programs.
Published September 1, 2009