架构无关动态分析平台
PANDA 是一个开源平台,用于架构无关的动态分析。它基于 QEMU 全系统模拟器构建,因此分析能够访问客户机中执行的所有代码和数据。PANDA 增加了记录和重放执行的能力,支持迭代式、深度的全系统分析。此外,重放日志文件紧凑且可共享,使得实验可重复。例如,一个包含九十亿条指令的 FreeBSD 启动过程仅需几百 MB 的存储空间。PANDA 利用 QEMU 对十三种不同 CPU 架构的支持,使得在 LLVM IR 中分析这些多样化的指令集成为可能。这样,PANDA 可以拥有单一的动态污点分析,例如,精确支持多种 CPU。PANDA 分析采用简单的插件架构编写,其中包括一种在插件之间共享功能的机制,从而增加分析代码的复用性并简化复杂分析的开发。
目前正与MIT林肯实验室、纽约大学和东北大学合作开发。PANDA根据GPLv2许可证发布。
PANDA有两个主要分支:dev用于开发,stable用于稳定版本发布。要了解这些分支与版本号之间的差异,请访问我们的wiki。通常,PANDA资源(即Docker容器和文档)基于dev分支。如果您打算分叉该项目并稍后拉取更新,我们建议使用stable分支。
PANDA 的 dev 分支的最新版本会自动构建为基于 Ubuntu 22.04 的 Docker 镜像,并发布到 Docker Hub。
大多数用户会希望使用 panda 容器,其中已安装 PANDA 和 PyPANDA 及其运行时依赖项,但不包含构建产物或源代码,以减小容器体积。
对使用 Docker 感兴趣的开发者应使用 pandadev 容器,其中已安装 PANDA 和 PyPANDA,并包含构建和运行所需的内容。
暂无开放 Issues,或尚未同步最近议题。