CGO 2010 Tutorial: Building Dynamic Instrumentation Tools with DynamoRIO
Saturday, April 24, 2010, from 1:30pm until 5:30pm,
at CGO 2010 in Toronto.
Audience
Researchers and professionals interested in building dynamic program
analysis tools.
Abstract
This tutorial will present the DynamoRIO tool platform and describe how to
use its API to build custom tools that utilize dynamic code manipulation
for instrumentation, profiling, analysis, optimization, introspection,
security, and more. The DynamoRIO tool platform was first released to the
public in June 2002 and has since been used by many researchers to develop
systems ranging from taint tracking to prefetch optimization. DynamoRIO is
now publicly available in open source form. It handles large, complex,
real-world applications on both Windows and Linux on the IA-32 and
AMD64/Intel-64 platforms.
The tutorial will describe the full range of DynamoRIO's powerful API,
which abstracts away the details of the underlying infrastructure and
allows the tool builder to concentrate on analyzing or modifying the
application's runtime code stream. We will give many examples and
highlight differences between DynamoRIO and other tool platforms. We
will also seek feedback on how we can improve the DynamoRIO API.
Topics
- DynamoRIO API
- Observe and modify runtime code stream
- Insert call-outs to high-level code, inline operations, or
re-arrange and replace code at ISA level
- Event system for thread, library, fault, system call, etc. operations
- Cross-platform transparency support
- Application inspection
- Powerful IA-32/AMD64 instruction representation for disassembly,
decoding, encoding, and manipulation of instructions.
- Support for translation in presence of code modifications
- Example tools, both small and large
- Advanced topics when building sophisticated tools
Organizers
Derek Bruening leads the Advanced Development Tools team
at VMware. Derek is the primary author of the DynamoRIO tool
platform. Prior to VMware, he co-founded Determina, whose Memory Firewall
security technology was based on DynamoRIO. Derek holds a PhD and MEng from
MIT.
Qin Zhao is a post-doctoral researcher at MIT. He holds a
PhD from NUS (National University of Singapore). He has built several
large tools and frameworks with DynamoRIO, including the debugging
framework EDDI and parallel memory profiler and analyzer PiPA.
Saman Amarasinghe is a Professor of Electrical Engineering
and Computer Science at MIT. His research interests are in discovering
novel approaches to improve the performance of modern computer systems
without unduly increasing the complexity faced by either application
developers, compiler writers or computer architects. Prof. Amarasinghe
received his BS in EECS from Cornell University in 1988, and his MSEE and
Ph.D. from Stanford University in 1990 and 1997, respectively.
Questions
Questions about the tutorial can be sent to the
DynamoRIO-Users
mailing list.
References
|