CGO 2016 Tutorial:
Building Dynamic Tools with DynamoRIO on x86 and ARM

9:00am-12:30pm on Sunday March 13, 2016 at the 2016 International Symposium on Code Generation and Optimization.


Researchers and professionals interested in building dynamic program analysis tools.


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 publicly available in open source form and targets Windows, Linux, Mac, and Android on IA-32, AMD64, and ARM.


The tutorial will cover the following topics:


The slides are now available in PDF and PPSX formats.


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.

The organizers both work on the Dr. Memory memory debugging tool, which is a powerful tool built on top of DynamoRIO.


Questions about the tutorial can be sent to the DynamoRIO-Users mailing list.