CGO 2012 Tutorial: Building Dynamic Instrumentation Tools with DynamoRIO
Saturday afternoon, March 31, 2012,
at CGO 2012 in San Jose, California.
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.
Topics
The tutorial will cover the following topics:
- DynamoRIO API: an overview of 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. It includes both high-level
features for quick prototyping and low-level features for full control
over instrumentation.
- DynamoRIO system overview: a brief description of how DynamoRIO works
under the covers
- Example tools, both small and large
- Advanced topics when building sophisticated tools
Organizers
Derek Bruening is the primary author of the DynamoRIO tool platform.
Derek is currently a Software Engineer at Google.
Previously he built DynamoRIO-based tools at VMware and co-founded
Determina, whose Memory Firewall security technology was based on
DynamoRIO. Derek holds a PhD and MEng from MIT.
Qin Zhao is a Software Engineer at Google. 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.
Reid Kleckner is a Software Engineer at Google. He holds a
MEng from MIT.
The three organizers all work on the Dr. Memory memory debugging tool,
which is a powerful tool built on top of DynamoRIO.
Questions
Questions about the tutorial can be sent to the
DynamoRIO-Users
mailing list.
References
|