
pwndbg v2026.07.29
借助 GDB 和 LLDB 轻松实现漏洞利用开发与逆向工程

pwndbg
pwndbg(/paʊnˈdiˌbʌɡ/)是一个GDB和LLDB插件,让调试不再痛苦,专注于低级软件开发人员、硬件黑客、逆向工程师和漏洞利用开发者所需的功能。
它拥有大量功能,请参阅我们的功能页面和CHEATSHEET(可以打印!)。如有任何问题,您可以阅读文档或在我们的Discord服务器上提问。
想要Pwndbg保持快速发展,或者让我们就此做个演讲?赞助我们!
为什么?
原生GDB和LLDB在逆向工程和漏洞利用开发中非常难用。输入x/30gx $rsp或浏览繁琐的LLDB命令并不有趣,而且通常提供的信息很少。已经是2026年了,核心调试器仍然缺乏许多用户友好的功能,例如强大的十六进制转储命令。WinDbg用户偶尔遇到GDB或LLDB时完全不知所措。
Pwndbg是一个Python模块,可以加载到GDB中,或作为LLDB的REPL接口运行。它提供了一系列实用程序和增强功能,填补了这些调试器留下的空白,平滑了粗糙的边缘,使其更加用户友好。
安装
请参阅安装说明。
那其他的呢?
许多过去的(gdbinit、PEDA)和当前的项目(GEF、bata24/GEF)提供了很棒的功能,但难以扩展,并且打包成单个大文件(103KB、195KB、423KB、5.24MB)。Pwndbg旨在用更快、更干净、更健壮的实现来替代它们。
何时使用GDB或LLDB?
Pwndbg同时支持GDB和LLDB,每种调试器都有其优势。以下是一个快速指南,帮助您决定使用哪一个:
| 使用场景 | 支持的调试器 |
|---|---|
| 调试Linux二进制文件或ELF文件 | GDB、LLDB |
| 调试macOS上的Mach-O二进制文件 | LLDB |
| Linux内核调试(qemu-system) | GDB、LLDB |
| Linux用户空间模拟(qemu-user) | GDB |
| 嵌入式调试(ARM Cortex M*或RISC-V/32) | GDB、LLDB |
Pwndbg确保两者体验一致,因此在它们之间切换是无缝的。
pwndbg中的LLDB实现仍处于早期阶段,可能包含错误或限制。
已知问题在GitHub Issues中跟踪。如果您遇到任何问题,请随时报告或在我们的Discord服务器上讨论。
兼容性表
| 功能 | 支持的版本 | 备注 |
|---|---|---|
| pwndbg-gdb | - Python 3.10+ - GDB 12.1+ | 在Ubuntu 22.04/24.04上经过充分测试 |
| pwndbg-lldb | - Python 3.12+ - LLDB 19+ | 实验性/早期阶段支持 |
| qemu-user | QEMU 8.1+ | vmmap需要vFile API |
| qemu-system | QEMU 6.2+ | 自Ubuntu 22.04起支持的版本 |
贡献
欢迎拉取请求❤️。请查看贡献指南。
致谢
Pwndbg最初由Zach Riggle创建,他现已离世。我们要感谢Zach对pwndbg以及整个安全社区的所有贡献。