{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/README.md#L47-L63",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/docs/README.md",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/docs/dyninstAPI/manual-latex/Introduction.tex",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/docs/parseAPI/manual-latex/1-Intro.tex",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/docs/instructionAPI/manual-latex/1-Intro.tex",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/docs/dataflowAPI/manual-latex/Intro.tex",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/cmake/DyninstPlatform.cmake",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/CMakeLists.txt",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/cmake/DyninstLanguageStandards.cmake",
    "https://github.com/dyninst/dyninst/tree/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/cmake/tpls",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/LICENSE.md",
    "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/COPYRIGHT",
    "https://github.com/dyninst/dyninst/releases/tag/v13.0.0"
  ],
  "category": "dynamic-analysis",
  "description_en": "Binary instrumentation, analysis and modification libraries from the Paradyn project. DyninstAPI inserts and changes instrumentation in a running program, or rewrites an executable or library on disk and writes the patched copy back, through one machine-independent interface that also supports static and dynamic analysis. Separately documented components handle symbol tables, line numbers and types (SymtabAPI), instruction decoding and disassembly (InstructionAPI), parsing into blocks, functions and loops (ParseAPI), dataflow analyses such as slicing (DataFlowAPI), process control, stack walking and patching.",
  "description_zh": "源自 Paradyn 项目的二进制插桩、分析与修改库。DyninstAPI 可在运行中的程序里插入和修改插桩代码，也可改写磁盘上的可执行文件或库并写回修改后的副本；同一套与机器无关的接口还支持静态和动态分析。各组件有独立手册，分别负责符号表、行号与类型（SymtabAPI）、指令解码与反汇编（InstructionAPI）、解析为基本块、函数和循环（ParseAPI）、切片等数据流分析（DataFlowAPI），以及进程控制、栈回溯和代码修补。",
  "entry_url": "https://awesomerea.org/resources/dyninst/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/dyninst/",
  "evidence_url": "https://github.com/dyninst/dyninst/blob/0c083894f16d5ea9beb8ad1eea2b60b5c2f95f86/README.md",
  "group": "tools",
  "id": "dyninst",
  "json_url": "https://awesomerea.org/resources/dyninst/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/dyninst/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/dyninst/index.md",
  "name": "Dyninst",
  "name_zh": "Dyninst 二进制插桩与分析库",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "The CMake platform check accepts Linux, FreeBSD and Windows hosts on x86-64, 32-bit x86, AArch64, ppc64le and riscv64, plus AMD GPU code-generation targets; InstructionAPI documents x86, x86-64, ARMv8-64 and 32/64-bit PowerPC decoding. The README calls AArch64 dynamic instrumentation experimental and incomplete, and its known issues include no Windows 64-bit or Windows rewriter mode, uncaught exceptions in relocated code, a fragile Windows stack walker and a crash when parsing a binary with no functions.",
    "Latest release at review: v13.0.0, published 2024-03-21. The reviewed master commit still declares version 13.0.0 and is 590 commits ahead of that tag; the README says the bundled v13.0.0 PDF manuals are a snapshot, so current behavior needs manuals built from source with pdflatex.",
    "Install with Spack or build from source with CMake 3.14+ (3.19.0 is rejected), a C11/C++11 toolchain (GCC 6+), Boost 1.71+, TBB 2019.9+ and, on Unix, elfutils 0.186+; Docker containers for development are described in the docker directory. Users supply their own executables, libraries or running processes to analyze or instrument.",
    "LGPL-2.1 (LICENSE.md). COPYRIGHT credits Barton P. Miller with contributions from LLNS, Red Hat and Bull SAS, and DataFlowAPI incorporates Rose Compiler Project code under its own copyright notice."
  ],
  "requirements_zh": [
    "CMake 平台检查接受 Linux、FreeBSD 和 Windows 主机，架构为 x86-64、32 位 x86、AArch64、ppc64le 和 riscv64，另有 AMD GPU 代码生成目标；InstructionAPI 文档列出 x86、x86-64、ARMv8-64 以及 32/64 位 PowerPC 指令解码。README 称 AArch64 动态插桩仍属实验性且不完整，已知问题包括不支持 Windows 64 位模式和 Windows 改写模式、重定位代码中的异常无法捕获、Windows 栈回溯不稳定，以及解析不含函数的二进制时会崩溃。",
    "审阅时最新版本为 v13.0.0，发布于 2024-03-21。所审阅的 master 分支提交仍声明版本 13.0.0，领先该标签 590 个提交；README 说明随附的 v13.0.0 PDF 手册只是快照，了解当前行为需用 pdflatex 从源码构建手册。",
    "可通过 Spack 安装，或从源码构建：需要 CMake 3.14+（拒绝 3.19.0）、C11/C++11 工具链（GCC 6+）、Boost 1.71+、TBB 2019.9+，在 Unix 上还需 elfutils 0.186+；docker 目录介绍了用于开发的 Docker 容器。用户需自备要分析或插桩的可执行文件、库或运行中的进程。",
    "采用 LGPL-2.1 许可（LICENSE.md）。COPYRIGHT 将版权归于 Barton P. Miller，并列出 LLNS、Red Hat 和 Bull SAS 的贡献；DataFlowAPI 包含 Rose Compiler Project 的代码，适用其单独的版权声明。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/dyninst/dyninst",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
