Generating Low-Overhead Dynamic Binary Translators
Google Tech Talk
June 9, 2010
Presented by Mathias Payer.
Dynamic (on the fly) binary translation is an important part of many software systems. In this talk we discuss how to combine efficient translation with the generation of efficient code, while providing a high-level table-driven user interface that simplifies the generation of the binary translator (BT).
The translation actions of the BT are specified in high-level abstractions that are compiled into translation tables; these tables control the runtime program translation. This table generator allows a compact description of changes in the translated code.
We use fastBT, a table-based dynamic binary translator that uses a code cache and various optimizations for indirect control transfers to illustrate the design tradeoffs in binary translators. We present an analysis of the most challenging sources of overhead and describe optimizations to further reduce these penalties. Keys to the good performance are a configurable inlining mechanism and adaptive self-modifying optimizations for indirect control transfers.
Link to the paper:
Using a BT to secure running programs:
Hacking the Hackers with User-Space Virtualization
Project page of the BT: