工具

DynamoRIO 动态二进制插桩框架

运行时代码操作系统,用于构建在未修改程序运行期间观察或变换其任意部分的动态工具。其 API 与 IA-32/AMD64/ARM/AArch64 指令操作库允许任意修改应用指令,而不仅限于插入回调。发布包附带 drcov 代码覆盖率、drltrace 库调用跟踪、drstrace Windows 系统调用跟踪、drmemtrace 指令与内存访问跟踪以及 drdisas 反汇编器等工具。它是用于构建插桩工具的框架,与 Frida 对运行中进程编写脚本的方式不同。

使用条件与局限

  • README 列出 Windows、Linux 和 Android 系统,以及 IA-32、AMD64、ARM 和 AArch64 硬件;macOS 支持仍在开发中。审阅时最新稳定版为 release_11.3.0-1,发布于 2025-01-11,提供 Windows、Linux、AArch64 Linux、ARM Linux EABIHF 和 ARM Android 软件包。每周 cronbuild 构建跟随 master 分支(cronbuild-11.91.20741,发布于 2026-10-17,不含 Android 包);本条目固定到所审阅的 master 分支提交。
  • 自定义工具基于其 API 编写,API 文档随发布包提供,也可在线查阅;API 示例涵盖内存地址、指令和基本块跟踪以及指令计数。README 列出 WinAFL、Arm Instruction Emulator、DrCCTProf、VClinic 和 GWPSan 等基于它构建的外部工具,发布包还附带 Dr. Memory;本条目未单独收录这些工具。
  • 主体采用 BSD 许可。drsyscall、drwrap 和 drutil 扩展以及 Dr. Memory Framework 库采用 LGPL 2.1,drsyms 扩展所链接的 elfutils 库采用 LGPL 3。README 中关于效率和透明性的说法未经测试;本次未对任何程序插桩。

关于此条目

类型
工具
类别
调试与动态分析
关联
基础工具
目标
二进制

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · DynamoRIO/dynamorio · 修订 6d2165a
  2. README.md#L19-L50 GitHub · DynamoRIO/dynamorio · 修订 6d2165a
  3. License.txt GitHub · DynamoRIO/dynamorio · 修订 6d2165a
  4. https://github.com/DynamoRIO/dynamorio/releases/tag/release_11.3.0-1
  5. https://github.com/DynamoRIO/dynamorio/releases/tag/cronbuild-11.91.20741
  6. https://dynamorio.org/page_download.html