
pwndbg v2026.07.29
GDB & LLDBを使ったエクスプロイト開発とリバースエンジニアリングを簡単に

pwndbg
pwndbg (/paʊnˈdiˌbʌɡ/) は、デバッグをより快適にするGDBおよびLLDBプラグインで、低レベルソフトウェア開発者、ハードウェアハッカー、リバースエンジニア、エクスプロイト開発者が必要とする機能に焦点を当てています。
豊富な機能を備えています。Features page と CHEATSHEET をご覧ください(印刷も自由です!)。ご質問があれば、ドキュメント を読むか、Discordサーバー でお尋ねください。
Pwndbgの開発を加速させたい、または講演を依頼したいですか? スポンサーになる!
なぜ?
バニラのGDBとLLDBは、リバースエンジニアリングやエクスプロイト開発には使いづらいものです。x/30gx $rsp と入力したり、面倒なLLDBコマンドを操作するのは楽しくなく、得られる情報も最小限です。2026年になっても、コアデバッガには堅牢なhexdumpコマンドのようなユーザーフレンドリーな機能がまだ多く欠けています。WinDbgユーザーは、たまにGDBやLLDBを使わなければならないときに完全に困惑してしまいます。
Pwndbg は、GDBにロードしたり、LLDBのREPLインターフェースとして実行できるPythonモジュールです。これらのデバッガの欠けている部分を補完する一連のユーティリティと機能強化を提供し、粗い部分を滑らかにして、よりユーザーフレンドリーにします。
インストール
インストール手順はinstallation instructionsをご覧ください。
他の選択肢は?
過去のプロジェクト(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によって最初に作成されました。pwndbgと広くセキュリティコミュニティへの彼のすべての貢献に感謝します。