{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/handbook/0x01_intro.md",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/handbook/0x02_targets.md#L67-L155",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/handbook/0x03_memory.md#L31-L45",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/handbook/0x04_execution.md#L113-L165",
    "https://github.com/avatartwo/avatar2/tree/56a90cfe738886236dcbc3653756bdbdec6aaf92/avatar2/targets",
    "https://github.com/avatartwo/avatar2/tree/56a90cfe738886236dcbc3653756bdbdec6aaf92/avatar2/archs",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/setup.py",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/.github/workflows/continuous_integration.yml",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/targets/build_qemu.sh",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/CHANGELOG.md",
    "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/LICENSE",
    "https://pypi.org/project/avatar2/1.4.7/"
  ],
  "category": "firmware",
  "description_en": "Python framework from EURECOM's S3 group that orchestrates emulators, debuggers and physical devices for dynamic analysis of embedded firmware. An analysis script declares targets, such as a modified QEMU, PANDA, Unicorn, a gdbserver or an OpenOCD or J-Link debug probe, then a memory layout whose ranges can forward accesses from one target to another, and an execution plan. Execution and register or memory state can move between targets, so firmware can run in an emulator while its peripheral accesses go to the real device.",
  "description_zh": "由 EURECOM S3 小组开发的 Python 框架，可协调模拟器、调试器和物理设备，对嵌入式固件进行动态分析。分析脚本先声明目标（如修改版 QEMU、PANDA、Unicorn、gdbserver，或 OpenOCD、J-Link 调试探针），再定义内存布局（其中的内存区间可把访问从一个目标转发到另一个目标）和执行计划。执行过程以及寄存器、内存状态可在目标之间转移，从而让固件在模拟器中运行，同时把外设访问转发给真实设备。",
  "entry_url": "https://awesomerea.org/resources/avatar2/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/avatar2/",
  "evidence_url": "https://github.com/avatartwo/avatar2/blob/56a90cfe738886236dcbc3653756bdbdec6aaf92/README.md",
  "group": "tools",
  "id": "avatar2",
  "json_url": "https://awesomerea.org/resources/avatar2/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/avatar2/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/avatar2/index.md",
  "name": "avatar²",
  "name_zh": "avatar² 多目标固件动态分析编排框架",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "Latest release at review: 1.4.7, uploaded to PyPI on 2022-02-10 and tagged v1.4.7; GitHub lists no release pages. The reviewed main commit, from 2024-10-23, is nine commits ahead of that tag, adding ARMv7-M interrupt forwarding and hardware-runner plugins and pinning Unicorn 2.0.1.post1.",
    "The core installs with pip; CI tests Python 3.7-3.9 on Ubuntu 20.04. Target endpoints are separate: python -m avatar2.installer or the targets/build_*.sh scripts build the avatar-qemu fork and PANDA, with build scripts provided for Ubuntu 20.04 only, and the scripts add a restricted deb-src repository to /etc/apt/sources.list, so the README suggests a VM or container. A Dockerfile generator builds images with selected endpoints.",
    "An analysis needs the user's own firmware image and, for hybrid setups, the physical device reachable through a gdbserver, an OpenOCD script or a Segger J-Link probe. Architecture definitions cover ARM, including Cortex-M3 and big-endian variants, MIPS and x86/x86-64. The analyst writes the memory layout, forwarding rules and execution plan in Python.",
    "Apache-2.0; avatar-qemu and PANDA come from separate repositories with their own licenses. The README lists research publications that describe, use or extend the framework."
  ],
  "requirements_zh": [
    "审阅时最新版本为 1.4.7，于 2022-02-10 上传到 PyPI，对应标签 v1.4.7；GitHub 上没有发布页面。所审阅的 main 分支提交（2024-10-23）比该标签多九个提交，新增了 ARMv7-M 中断转发和硬件运行器插件，并将 Unicorn 固定为 2.0.1.post1。",
    "核心部分可用 pip 安装；CI 在 Ubuntu 20.04 上测试 Python 3.7-3.9。目标端点需单独构建：python -m avatar2.installer 或 targets/build_*.sh 脚本会构建 avatar-qemu 分支和 PANDA，构建脚本只为 Ubuntu 20.04 提供；这些脚本会把 restricted 软件源的 deb-src 条目写入 /etc/apt/sources.list，因此 README 建议在虚拟机或容器中构建。另有 Dockerfile 生成脚本，可按所选端点构建镜像。",
    "分析需要使用者自有的固件镜像；混合部署还需要可通过 gdbserver、OpenOCD 脚本或 Segger J-Link 探针访问的物理设备。架构定义涵盖 ARM（包括 Cortex-M3 和大端变体）、MIPS 以及 x86/x86-64。内存布局、转发规则和执行计划都由分析者用 Python 编写。",
    "采用 Apache-2.0 许可；avatar-qemu 和 PANDA 位于独立仓库，各有其许可。README 列出了介绍、使用或扩展该框架的研究论文。"
  ],
  "targets": [
    "firmware"
  ],
  "url": "https://github.com/avatartwo/avatar2",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
