Intercepting Arbitrary Functions on Windows, UNIX, and%0AMacintosh OS X Platforms
UNIVERSITY OF%0AMARYLAND
UNIVERSITAT DE %0A MARYLAND
Shared libraries are code objects that may be loaded%0Aduring execution into the memory space associated%0Awith a process. Shared libraries allow considerably%0Asmaller executables, as each executable no longer has%0Ato contain its own copy of every required library.%0AMemory may also be saved at run-time, as the op-%0Aerating system can share a single copy of a shared%0Alibrary between multiple processes. As an example,%0Aunder Linux, the system C library is generally linked%0Aas a shared library.
In addition to shared libraries loaded by pro-%0Acesses themselves, one may also force a process to%0Aload a shared library using the LD_PRELDAD environ-%0Ament variable, which instructs the loader (ld. so) to%0Aload the specified shared libraries. Symbol defini-