moyix/panda

GitHub: moyix/panda

基于 QEMU 的架构中立动态分析平台,支持执行记录重放和多架构动态污点分析。

Stars: 107 | Forks: 42

# PANDA ## 此仓库已废弃。请参考 [PANDA 2](https://github.com/panda-re/panda)。 ## 此仓库将不再更新。 PANDA 是一个开源的架构中立动态分析平台(Platform for Architecture-Neutral Dynamic Analysis)。它构建于 QEMU 全系统模拟器之上,因此分析过程可以访问客户机(guest)中执行的所有代码和所有数据。PANDA 增加了记录和重放执行过程的能力,从而实现了迭代的、深度的全系统分析。此外,重放日志文件体积小且可共享,允许进行可重复的实验。例如,九十亿条指令的 FreeBSD 启动过程仅需几百 MB 即可表示。PANDA 利用 QEMU 对十三种不同 CPU 架构的支持,使得在 LLVM IR 中分析这些多样化的指令集成为可能。通过这种方式,PANDA 可以拥有单一(例如)动态污点分析,从而精确支持多种 CPU。PANDA 分析是在一个简单的插件架构中编写的,该架构包含一种在插件之间共享功能的机制,提高了分析代码的复用性并简化了复杂分析的开发。 目前,该项目由 MIT Lincoln Laboratory、NYU 和 Northeastern University 合作开发。 ## 构建 由于 PANDA 有一些依赖项,我们将构建说明编码到了脚本 `panda_install.bash` 中。该脚本实际上应该在 Debian 7/8 和 Ubuntu 14.04 上运行,并且将 `apt-get` 命令转换为您的发行版使用的任何包管理器应该不难。我们目前仅保证在 Debian 7/8 和 Ubuntu 14.04 上的可构建性,但我们欢迎提交 pull request 来修复其他发行版的问题。 请注意,如果您想使用我们的 LLVM 功能(主要是动态污点系统),您需要从 OS 软件包安装 LLVM 3.3 或从源代码编译。在 Ubuntu 14.04 上,这将通过 `panda_install.bash` 自动完成。我们目前不支持在 Mac/BSD 上构建,尽管通过一些补丁应该并非不可能。我们确实依赖于一些 Linux 特有的 API。 ## 支持 如果您需要 PANDA 方面的帮助,或者想讨论该项目,您可以加入我们在 Freenode 上的 IRC 频道 #panda-re,或者加入 [PANDA 邮件列表](http://mailman.mit.edu/mailman/listinfo/panda-users)。 我们有一份基础手册在[这里](docs/manual.md)。 ## PANDA 插件 关于架构中立插件接口的详细信息可以在 [docs/PANDA.md](docs/PANDA.md) 中找到。现有的插件和工具可以在 [qemu/panda\_plugins](qemu/panda_plugins) 和 [qemu/panda\_tools](qemu/panda_tools) 中找到。 ## 记录/重放 PANDA 目前支持 x86、x86\_64 和 ARM 客户机的全系统记录/重放执行。文档可以在 [docs/record\_replay.md](docs/record_replay.md) 中找到。 ## Android 支持 PANDA 支持在 Goldfish 模拟平台上运行的 ARMv7 Android 客户机。文档可以在 [docs/Android.md](docs/Android.md) 中找到。 ## 出版物 * [1] B. Dolan-Gavitt, T. Leek, J. Hodosh, W. Lee. Tappan Zee (North) Bridge: Mining Memory Accesses for Introspection. 20th ACM Conference on Computer and Communications Security (CCS), Berlin, Germany, November 2013. * [2] R. Whelan, T. Leek, D. Kaeli. Architecture-Independent Dynamic Information Flow Tracking. 22nd International Conference on Compiler Construction (CC), Rome, Italy, March 2013. * [3] B. Dolan-Gavitt, J. Hodosh, P. Hulin, T. Leek, R. Whelan. Repeatable Reverse Engineering with PANDA. 5th Program Protection and Reverse Engineering Workshop, Los Angeles, California, December 2015. * [4] M. Stamatogiannakis, P. Groth, H. Bos. Decoupling Provenance Capture and Analysis from Execution. 7th USENIX Workshop on the Theory and Practice of Provenance, Edinburgh, Scotland, July 2015. * [5] B. Dolan-Gavitt, P. Hulin, T. Leek, E. Kirda, A. Mambretti, W. Robertson, F. Ulrich, R. Whelan. LAVA: Large-scale Automated Vulnerability Addition. 37th IEEE Symposium on Security and Privacy, San Jose, California, May 2016. ## 许可证 GPLv2。 ## 致谢 这项工作由负责研究和工程的助理国防部长根据 Air Force Contract #FA8721-05-C-0002 赞助。
标签:Debian, FreeBSD, Hakrawler, LLVM, MIT林肯实验室, Mr. Robot, PANDA, Python, QEMU, SecList, UML, 二进制分析, 二进制发布, 云安全运维, 云资产清单, 全系统分析, 内存取证, 内联执行, 动态污点分析, 后渗透, 客户端加密, 客户端加密, 开源工具, 恶意代码分析, 指令集架构, 插件架构, 数据包嗅探, 无后门, 无线安全, 架构中立, 流量嗅探, 系统仿真, 网络安全审计, 记录与重放, 调试插件, 身份验证强制, 逆向工具, 逆向工程, 配置文件