对二进制的代码植入分为两类,静态植入和动态植入。静态植入是通过二进制代码重写来实现的,植入时不允许代码;动态植入是在被植入代码运行过程中,通过一个小的虚拟机在特定时刻执行待植入代码来实现植入。
A. Static instrumentation tools
1. ATOM
2. DTools (http://research.microsoft.com/sn/detours/)
B. Dynamic instrumentation tools
1. Pin (http://rogue.colorado.edu/Pin/)
2. DynamoRIO (http://www.cag.lcs.mit.edu/dynamorio/)
3. Valgrind (http://www.valgrind.org/)