Плагин для GDB/LLDB, который делает отладку и разработку эксплойтов продуктивной. Предоставляет информативный контекст при каждой остановке, мощные команды для анализа памяти и heap. Возможности: - Автоматический контекст: регистры, стек, код, heap при каждом stop - Анализ heap: ptmalloc2, tcache, fastbins, арены - Поиск ROP-гаджетов прямо в GDB - Команды: `vmmap`, `telescope`, `cyclic`, `checksec` - Интеграция с pwntools - Поддержка удалённой отладки через gdbserver - Дизассемблирование с Intel/AT&T синтаксисом
# Установка: git clone https://github.com/pwndbg/pwndbg cd pwndbg && ./setup.sh # Или через pipx: pipx install pwndbg pwndbg ./binary # .gdbinit подключается автоматически после setup.sh # Основные команды в pwndbg: context # показать контекст telescope $rsp # дамп стека с разыменованием heap # анализ heap vmmap # карта памяти процесса cyclic 100 # создать паттерн для offset checksec # проверить защиты бинаря rop # найти ROP-гаджеты
pwndbg (/paʊnˈdiˌbʌɡ/) — это плагин для GDB и LLDB, который делает процесс отладки менее утомительным, с особым вниманием к функциям, необходимым разработчикам системного программного обеспечения, хакерам аппаратного обеспечения, реверс-инженерам и разработчикам эксплойтов.
Он обладает огромным набором возможностей, смотрите нашу страницу возможностей и ШПАРГАЛКУ (можете её распечатать!). Если у вас есть вопросы, вы можете прочитать документацию или задать их нам на нашем Discord-сервере.
Хотите, чтобы Pwndbg продолжал развиваться, или хотите услышать наш доклад об этом? Поддержите нас!
Стандартные GDB и LLDB ужасны для использования в реверс-инжиниринге и разработке эксплойтов. Набирать x/30gx $rsp или использовать громоздкие команды LLDB — не самое приятное занятие, и часто это дает лишь минимальную информацию. Мы живем в 2026 году, а основные отладчики по-прежнему лишены многих удобных функций, таких как надежная команда hexdump. Пользователи WinDbg совершенно теряются, когда им изредка приходится столкнуться с GDB или LLDB.
Pwndbg — это модуль на Python, который может быть загружен в GDB или работать как REPL-интерфейс для LLDB. Он предоставляет набор утилит и улучшений, восполняющих пробелы, оставленные этими отладчиками, сглаживая шероховатости и делая их более удобными для пользователя.
Смотрите инструкции по установке.
Многие прошлые (gdbinit, PEDA) и настоящие (GEF, bata24/GEF) проекты предлагают отличные возможности, но их трудно расширять, и они упакованы в большие единичные файлы (103KB, 195KB, 423KB, 5.24MB). Pwndbg направлен на замену их более быстрой, чистой и надежной реализацией.
Pwndbg поддерживает и GDB, и LLDB, и у каждого отладчиков свои сильные стороны. Вот краткое руководство, которое поможет вам определиться с выбором:
| Сценарий использования | Поддерживаемый отладчик |
|---|---|
| Отладка бинарных файлов Linux или ELF-файлов | GDB, LLDB |
| Отладка бинарных файлов Mach-O на macOS | LLDB |
| Отладка ядра Linux (qemu-system) | GDB, LLDB |
| Эмуляция пользовательского пространства Linux (qemu-user) | GDB |
| Встроенная отладка (ARM Cortex M* или RISC-V/32) | GDB, LLDB |
Pwndbg обеспечивает единый опыт работы с обоими, поэтому переключение между ними плавное.
Реализация LLDB в pwndbg все еще находится на ранней стадии и может содержать ошибки или ограничения.
Известные проблемы отслеживаются в 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+ | Требуется API vFile для vmmap |
| qemu-system | QEMU 6.2+ | Поддерживаемая версия начиная с Ubuntu 22.04 |
Pull request'ы приветствуются ❤️. Ознакомьтесь с Руководством по участию.
Pwndbg первоначально был создан Zach Riggle, которого больше нет с нами. Мы хотим поблагодарить Зака за его вклад в pwndbg и более широкое сообщество безопасности.