pwndbg/pwndbg
GitHub: pwndbg/pwndbg
这是一个旨在让漏洞利用开发和逆向工程变得更轻松的 GDB 与 LLDB 增强插件,通过模块化设计解决了原生调试器易用性差的问题。
Stars: 10149 | Forks: 1192

# pwndbg
[](https://choosealicense.com/licenses/mit/)
[](https://github.com/pwndbg/pwndbg/actions/workflows/tests.yml)
[](https://app.codecov.io/github/pwndbg/pwndbg/tree/dev)
[](https://discord.gg/x47DssnGwm)
`pwndbg` (/paʊnˈdiˌbʌɡ/) 是一个 GDB 和 LLDB 插件,旨在让调试不再那么痛苦,
重点关注底层软件开发者、硬件黑客、
逆向工程师和漏洞利用开发者所需的功能。
它拥有 heaps of features,请查看我们的 [功能页面](https://pwndbg.re/stable/features/)
和 [CHEATSHEET][CHEATSHEET](随时可以打印!)。如果你有任何问题,可以阅读
[文档](https://pwndbg.re/stable/) 或在我们的 [Discord 服务器](https://discord.gg/x47DssnGwm) 中提问。
## 为什么?
原生的 GDB 和 LLDB 在用于逆向工程和漏洞利用开发时体验极差。
输入 `x/30gx $rsp` 或导航繁琐的 LLDB 命令并不有趣,而且通常只提供
最少量的信息。现在是 2026 年,核心调试器仍然缺乏许多用户友好的
功能,例如强大的 hexdump 命令。当 WinDbg 用户
偶尔需要接触 GDB 或 LLDB 时,往往会感到完全迷失。
Pwndbg 是一个 Python 模块,可以加载到 GDB 中,或作为 LLDB 的 REPL 接口运行。
它提供了一套实用程序和增强功能,填补了这些调试器留下的空白,
消除了粗糙的边缘,使其更加用户友好。
## 安装
请参阅 [安装说明](https://pwndbg.re/stable/setup)。
## 其他工具对比?
许多过去([gdbinit][gdbinit]、[PEDA][PEDA])和现在的项目([GEF][GEF]、
[bata24/GEF][bata24/GEF])提供了很棒的功能,但难以扩展,并且被打包成
巨大的单个文件([103KB][gdbinit2]、[195KB][peda.py]、[423KB][gef.py]、
[5.24MB][bata24/gef.py])。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-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 起支持的版本 | ## 贡献 欢迎提交 Pull requests ❤️。请查看 [贡献指南](https://pwndbg.re/dev/contributing/)。 ## 致谢 Pwndbg 最初由 [Zach Riggle](https://github.com/zachriggle) 创建,他已不在我们身边。我们要感谢 Zach 对 pwndbg 和更广泛的安全社区所做出的所有贡献。
- 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 起支持的版本 | ## 贡献 欢迎提交 Pull requests ❤️。请查看 [贡献指南](https://pwndbg.re/dev/contributing/)。 ## 致谢 Pwndbg 最初由 [Zach Riggle](https://github.com/zachriggle) 创建,他已不在我们身边。我们要感谢 Zach 对 pwndbg 和更广泛的安全社区所做出的所有贡献。
标签:Aarch64, DNS 反向解析, GDB, JARM, LLDB, Pwndbg, Python, XML 请求, 二进制分析, 云安全运维, 云资产清单, 内存分析, 内核调试, 安全开发, 无后门, 汇编, 漏洞利用开发, 硬件黑客, 自定义密码套件, 调试器插件, 身份验证强制, 逆向工具, 逆向工程