DynamoRIO is a runtime code manipulation system that supports code
transformations on any part of a program, while it executes. DynamoRIO
exports an interface for building dynamic tools for a wide variety of uses:
program analysis and understanding, profiling, instrumentation,
optimization, translation, etc. Unlike many dynamic tool systems, DynamoRIO
is not limited to insertion of callouts/trampolines and allows arbitrary
modifications to application instructions via a powerful IA-32/AMD64
instruction manipulation library. DynamoRIO provides efficient,
transparent, and comprehensive manipulation of unmodified applications
running on stock operating systems (Windows or Linux) and commodity IA-32
and AMD64 hardware.
DynamoRIO's powerful API 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. API documentation is
included in the release package and can also
be browsed online.
DynamoRIO is available free of charge as
package for both Windows and Linux.
code is available under a BSD license.
Use the discussion
list to ask questions.
To report a bug, use
API compatibility change: if you build DynamoRIO from
bumped the version to 3.0.0 and changed the dr_mcontext_t structure and
related functions in a way that requires source changes to clients.
release notes for more details.
We will be presenting a tutorial on building tools
using DynamoRIO at CGO 2012.