Patent number 8510723 is assigned to
The following quote was obtained by the news editors from the background information supplied by the inventors: "Binary rewriters that do not require relocation information may be relevant to the field of computing. Specifically, such binary rewriters may improve both the functional structure of computer programs and the physical structure of their recording media in a variety of ways.
"Binary rewriters are tools, often implemented using software running on hardware, 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.
"Binary rewriting is valuable even for highly optimized binaries produced by the best industrial-strength compilers. The reasons for this value include the following. Although compilers can in theory do whole-program optimizations, most compile each procedure separately. Moreover, research in whole-program optimization has been focused on a few domains and is limited in general. Binary rewriters have demonstrated inter-procedural optimizations that deliver improvements even on highly optimized binaries. Also, it may be more economically feasible to implement a transformation once in a binary rewriter, rather than repeatedly in each of the many compilers for an instruction set. Additionally, unlike compiler-implemented technology, when a code transformation is implemented in a binary rewriter, it may be applicable to code produced from any programming language, including assembly code, with no additional effort. Finally, binary rewriters can be used to enforce security rules on to-be-executed code. A compiler may not serve to enforce security, since the developer may, maliciously or otherwise, simply not use a compiler with security enforcement.
"However the reality is that binary rewriters are not in wide commercial use today. One reason is that conventional binary rewriters are unable to rewrite binaries that have no relocation information. Static, or off-line, rewriters are discussed here, while dynamic, or run-time, rewriters are discussed later. Linkers typically discard relocation information. Indeed, virtually all commercial binaries lack relocation information. Consequently, they cannot be rewritten by existing static rewriters. Instead, developers can rewrite their own binaries by specially generating binaries produced by instructing the linker to retain relocation information. Linkers typically discard relocation and symbolic information because it is not needed for execution, and further, software vendors do not want this information to be revealed for their programs, since it makes it easier to understand and reverse-engineer their products.
Most Popular Stories
- Twitter Coming to Phones Without Internet
- Entravision Initiates Quarterly Cash Dividend
- Warner Bros. Unleashes 'Hobbit: Desolation of Smaug' Merchandise
- How Monthly Jobs Reports Move the Markets' Needle
- Consistent Hiring Points to Stronger Economy Ahead
- Shanghai Smog Forces Factory Shutdowns
- Thad Cochran, 76, Seeks 7th Senate Term
- How to Arm Yourself Against CryptoLocker Virus
- Eagle Deaths OK'd for Wind Power
- Amanda Bynes Enrolls in California's FIDM