Check out the new USENIX Web site. next up previous
Next: DITOOLS Up: Dynamic Extension and Flexible Previous: Exploiting dynamic loading

Dynamic interposition

Conceptually, `interposition' is the addition of functionality at the midst of an existing interface boundary. This mechanism is appropriate for binding extensions, because it exploits existing interface boundaries to attach new services while preserving old ones.

We deal with interposition at procedure-call boundaries. That is, we add functionality in the program execution path, between references to procedures and the procedures themselves.

To achieve this kind of interposition dynamically, at run time, we need to detect references to procedures and to be able to change their target definitions within the process image. Dynamic linking draws a clean boundary between external references and their definitions, by means of the linkage tables and other data structures described above. In this work we exploit these data structures for interposition purposes.

Albert Serra, DITools, 2000 USENIX Annual Technical Conference
Tue Apr 25 13:07:07 MET DST 2000