Simulation additions
This commit is contained in:
@@ -44,7 +44,7 @@ The following Section \ref{sec:dynamorio_core} will explain how the core functio
|
||||
\label{sec:dynamorio_core}
|
||||
|
||||
A simple way to observe and potentially modify the instructions of an application during execution is the use of an interpretation engine that emulates the binary executable in its entirety.
|
||||
One widely used framework that uses this technique is for example Valgrind\cite{Valgrind}.
|
||||
One widely used framework that uses this technique is for example Valgrind \cite{Valgrind}.
|
||||
At its core, Valgrind uses a virtual machine and just-in-time compilation to instrument the target application.
|
||||
This approach might be powerful, but it comes at the cost of significantly reduced performance.
|
||||
|
||||
@@ -99,7 +99,7 @@ So a sophisticated application could try to detect the presence of an instrument
|
||||
\label{sec:dynamorio_client}
|
||||
|
||||
With the inner workings introduced so far, the presence of DynamoRIO does not have an effect other than that the application is executed from the code cache.
|
||||
DynamoRIO provides a programming interface to develop external so-called \textit{clients}\cite{Bruening2004}.
|
||||
DynamoRIO provides a programming interface to develop external so-called \textit{clients} \cite{Bruening2004}.
|
||||
Clients are user-written instrumentation tools and make it possible to dynamically modify the basic blocks, either to alter the application behavior or to insert observational instructions.
|
||||
A DynamoRIO client is compiled into a shared library and passed to the \textit{drrun} utility using a command line option.
|
||||
Clients implement a number of hook functions that will be called by DynamoRIO for certain events such as the creation of a basic block or of a trace.
|
||||
|
||||
Reference in New Issue
Block a user