K. Scott, J. Davidson and K. Skadron.
Tech Report CS-2001-18, Univ. of Virginia Dept. of Computer Science, July, 2001.
Abstract
Software dynamic translation (SDT) is a technology that allows programs to be modified as they
are running. The overhead of monitoring and modifying a running program s instructions is often substantial
in SDT. As a result SDT can be impractically slow, especially in SDT systems that do not or can not employ
dynamic optimization to offset overhead. This is unfortunate since SDT has obvious advantages in modern
computing environments and interesting applications of SDT con-tinue to emerge. In this paper we introduce
two novel overhead reduction techniques that can improve SDT performance by a factor of three even when
no dynamic optimization is performed. To demonstrate the effectiveness of our overhead reduction
techniques, and to show the type of useful tasks to which low-overhead, non-optimizing SDT systems might
be put, we implemented two dynamic safety checkers with SDT. These dynamic safety checkers perform
useful tasks pre-venting buffer-overrun exploits and restricting system call usage in untrusted binaries.
Further their performance is similar to, and in some cases better than, state-of-the-art tools that perform the
same functions without SDT.