Dynamic Instrumentation Tool Platform
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
DynamoRIO

关于 DynamoRIO
DynamoRIO 是一个运行时代码操纵系统,能够在程序执行过程中对任何部分的代码进行转换。DynamoRIO 提供了一个构建动态工具的接口,适用于多种用途:程序分析和理解、性能分析、检测、优化、转换等。与许多动态工具系统不同,DynamoRIO 不仅限于插入调用/跳板,还允许通过强大的 IA-32/AMD64/ARM/AArch64 指令操作库对应用程序指令进行任意修改。DynamoRIO 提供了对未修改应用程序的高效、透明、全面的操作,这些应用程序运行在标准的操作系统(Windows、Linux 或 Android)和 IA-32、AMD64、ARM、AArch64 硬件上。Mac OSX 的支持正在进行中。
基于 DynamoRIO 的现有工具
DynamoRIO 是一些知名外部工具的基础:
- Arm 指令仿真器(ArmIE)
- WinAFL,作为检测和代码覆盖率引擎的 Windows 模糊测试工具
- 针对 ARM 的细粒度分析工具 DrCCTProf
在 发行包 中可用的基于 DynamoRIO 构建的工具包括:
- 内存调试工具 Dr. Memory
- 跟踪和分析框架 drmemtrace 以及多个既支持在线(多进程支持)又支持离线指令和内存地址跟踪的工具:
- 传统的处理器仿真器 drcpusim
- "Windows 下的 strace" 工具 drstrace
- 代码覆盖率工具 drcov
- 库跟踪工具 drltrace
- 内存地址跟踪工具 memtrace(drmemtrace 的离线跟踪具有更快的速度和更多的基础设施,但这是一个更简单的自定义内存地址跟踪起点)
- 内存值跟踪工具 memval
- 指令跟踪工具 instrace(drmemtrace 的离线跟踪具有更快的速度和更多的基础设施,但这是一个更简单的自定义指令跟踪起点)
- 基本块跟踪工具 bbbuf
- 指令计数工具 inscount
- 动态模糊测试工具 Dr. Fuzz
- 反汇编工具 drdisas
- 以及更多,包括操作码计数、分支检测等:查看 API 示例
构建您自己的自定义工具
DynamoRIO 强大的 API 抽象掉了底层基础设施的细节,允许工具构建者专注于分析和修改应用程序的运行时代码流。API 文档包含在发行包中,也可以在线浏览API 文档。我们以往的教程幻灯片也可供查看。
下载 DynamoRIO
DynamoRIO 可免费作为 Windows 和 Linux 的二进制包提供。DynamoRIO 的 源代码主要遵循 BSD 许可证。
获取帮助
使用 讨论列表 提问。
报告错误,请使用 问题追踪器。