- Notifications
You must be signed in to change notification settings - Fork603
Dynamic Instrumentation Tool Platform
License
DynamoRIO/dynamorio
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
DynamoRIO is a runtime code manipulation system that supports codetransformations on any part of a program, while it executes. DynamoRIOexports 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, DynamoRIOis not limited to insertion of callouts/trampolines and allows arbitrarymodifications to application instructions via a powerful IA-32/AMD64/ARM/AArch64instruction manipulation library. DynamoRIO provides efficient,transparent, and comprehensive manipulation of unmodified applicationsrunning on stock operating systems (Windows, Linux, or Android) and commodityIA-32, AMD64, ARM, and AArch64 hardware. Mac OSX support is in progress.
DynamoRIO is the basis for some well-known external tools:
- TheArm Instruction Emulator (ArmIE)
- WinAFL, the Windows fuzzing tool, as an instrumentation and code coverage engine
- The fine-grained profiler for ARMDrCCTProf
- The portable and efficient framework for fine-grained value profilersVClinic
- The sampling-based sanitizer frameworkGWPSan
Tools built on DynamoRIO and available in therelease package include:
- The memory debugging toolDr. Memory
- The tracing and analysis frameworkdrmemtrace with multiple tools that operate on both online (with multi-process support) and offline instruction and memory address traces:
- The legacy processor emulatordrcpusim
- The "strace for Windows" tooldrstrace
- The code coverage tooldrcov
- The library tracing tooldrltrace
- The memory address tracing toolmemtrace (drmemtrace's offline traces are faster with more surrounding infrastructure, but this is a simpler starting point for customized memory address tracing)
- The memory value tracing toolmemval
- The instruction tracing toolinstrace (drmemtrace's offline traces are faster with more surrounding infrastructure, but this is a simpler starting point for customized instruction tracing)
- The basic block tracing toolbbbuf
- The instruction counting toolinscount
- The dynamic fuzz testing toolDr. Fuzz
- The disassembly tooldrdisas
- And more, including opcode counts, branch instrumentation, etc.: seeAPI samples
DynamoRIO's powerful API abstracts away the details of the underlyinginfrastructure and allows the tool builder to concentrate on analyzing ormodifying the application's runtime code stream. API documentation isincluded in the release package and can also bebrowsedonline.Slides from our past tutorials arealso available.
DynamoRIO is available free of charge as abinary package for both Windowsand Linux.DynamoRIO'ssource code isavailable primarily under aBSDlicense.
Use thediscussion listto ask questions.
To report a bug, use theissuetracker.
About
Dynamic Instrumentation Tool Platform
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
