
pandare/pandaPANDA(Platform for Architecture-Neutral Dynamic Analysis)是一个基于 QEMU 全系统模拟器构建的开源动态分析平台,旨在提供架构无关的全系统动态分析能力。通过记录和回放系统执行过程,PANDA 支持迭代式、深度的全系统分析,其紧凑的回放日志(如 FreeBSD 启动的 90 亿条指令仅需数百 MB)可共享,确保实验可重复。借助 QEMU 对 13 种 CPU 架构的支持,PANDA 能将多样化指令集转换为 LLVM IR 进行统一分析,同时提供插件架构简化复杂分析开发。
PANDA 提供两种 Docker 镜像,基于 Ubuntu 20.04 构建:
pandare/panda:用户镜像,包含 PANDA 与 PyPANDA 运行时依赖,无构建产物和源代码,体积较小pandare/pandadev:开发镜像,包含完整源代码(/panda 目录)、构建产物及所有依赖,适用于开发场景pandare/panda)从 Docker Hub 拉取
bashdocker pull pandare/panda
验证安装
bashdocker run --rm pandare/panda panda-system-i386 --help
从源码构建
bash# 需启用 BuildKit DOCKER_BUILDKIT=1 docker build --target=panda -t panda . # 验证构建结果 docker run --rm panda panda-system-i386 --help
pandare/pandadev)从 Docker Hub 拉取
bashdocker pull pandare/pandadev
验证安装
bashdocker run --rm pandare/pandadev /panda/build/panda-system-i386 --help
从源码构建
bashDOCKER_BUILDKIT=1 docker build --target=developer -t pandadev . # 验证构建结果 docker run --rm pandadev panda-system-i386 --help
以 i386 架构 guest 系统为例,启动 PANDA 分析:
bash# 使用用户镜像运行(需提前准备 guest 镜像文件) docker run --rm -v $(pwd)/guest.img:/guest.img pandare/panda panda-system-i386 -m 2G -hda /guest.img -monitor stdio
PANDA 依赖 S2E 项目的 LLVM 架构将 QEMU 的 TCG 中间代码转换为 LLVM IR,当前支持 LLVM 10,主要用于动态污点分析等复杂功能。
记录与回放仅支持相同地址长度的 PANDA 构建(如 32 位构建的 trace 无法在 64 位构建上回放),建议优先使用 64 位镜像。
README.md(参见 panda/plugins)PANDA 基于 GPLv2 许可 发布,由 MIT Lincoln Laboratory、NYU 和东北大学合作开发。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务