
pwndbg v2026.07.29
GDB 및 LLDB를 활용한 익스플로잇 개발 및 리버스 엔지니어링을 쉽게

pwndbg
pwndbg는 GDB와 LLDB 플러그인으로, 디버깅을 덜 고통스럽게 만듭니다. 특히 저수준 소프트웨어 개발자, 하드웨어 해커, 리버스 엔지니어 및 익스플로잇 개발자에게 필요한 기능에 중점을 둡니다.
수많은 기능을 갖추고 있습니다. 자세한 내용은 Features 페이지와 CHEATSHEET을 참조하세요. 질문이 있으면 문서를 읽거나 Discord 서버에서 문의하세요.
Pwndbg가 빠르게 발전하길 원하시거나, 저희가 이에 대해 발표하길 원하시나요? 후원해 주세요!
왜?
기본 GDB와 LLDB는 리버스 엔지니어링 및 익스플로잇 개발에 사용하기 매우 불편합니다. x/30gx $rsp를 입력하거나 번거로운 LLDB 명령어를 탐색하는 것은 재미없고 종종 최소한의 정보만 제공합니다. 2026년인 지금도 핵심 디버거에는 강력한 헥스덤프 명령어와 같은 많은 사용자 친화적인 기능이 부족합니다. WinDbg 사용자는 가끔 GDB나 LLDB를 사용해야 할 때 완전히 당황합니다.
Pwndbg는 GDB에 로드하거나 LLDB용 REPL 인터페이스로 실행할 수 있는 Python 모듈입니다. 이러한 디버거의 부족한 부분을 메우고 거친 부분을 부드럽게 하여 사용자 친화적으로 만드는 유틸리티 및 개선 사항 제품군을 제공합니다.
설치
설치 안내를 참조하세요.
다른 프로젝트는?
많은 과거 및 현재 프로젝트(gdbinit, PEDA, GEF, bata24/GEF)는 훌륭한 기능을 제공하지만 확장하기 어렵고 큰 단일 파일로 패키징되어 있습니다(103KB, 195KB, 423KB, 5.24MB). Pwndbg는 더 빠르고, 깔끔하며, 더 강력한 구현으로 이를 대체하는 것을 목표로 합니다.
GDB 또는 LLDB를 언제 사용해야 하나요?
Pwndbg는 GDB와 LLDB를 모두 지원하며, 각 디버거에는 고유한 장점이 있습니다. 다음은 어떤 것을 사용할지 결정하는 데 도움이 되는 빠른 안내입니다.
| 사용 사례 | 지원 디버거 |
|---|---|
| 리눅스 바이너리 또는 ELF 파일 디버깅 | GDB, LLDB |
| macOS에서 Mach-O 바이너리 디버깅 | LLDB |
| 리눅스 커널 디버깅 (qemu-system) | GDB, LLDB |
| 리눅스 사용자 공간 에뮬레이션 (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이 만들었으며, 그는 더 이상 우리와 함께하지 않습니다. pwndbg와 보안 커뮤니티에 대한 Zach의 모든 기여에 감사드립니다.