GitHub

What is the project about?

Pwndbg is a GDB and LLDB plugin designed to enhance the debugging experience, particularly for low-level software developers, hardware hackers, reverse-engineers, and exploit developers.

What problem does it solve?

It addresses the limitations and usability issues of vanilla GDB and LLDB, which can be cumbersome and lack user-friendly features for reverse engineering and exploit development.

What are the features of the project?

  • Provides a suite of utilities and enhancements to GDB and LLDB.
  • A lot of features, detailed in FEATURES.md and [CHEATSHEET][CHEATSHEET].
  • Clean implementation designed for speed and resilience.
  • Batteries-included approach, with all features available upon setup.

What are the technologies used in the project?

  • Python (as a GDB/LLDB module)
  • GDB (GNU Debugger)
  • LLDB (Low Level Debugger)
  • Supports Nix package manager.
  • Can be built from source or used as pre-built packages.

What are the benefits of the project?

  • Improved debugging workflow for low-level tasks.
  • Enhanced user experience compared to standard GDB/LLDB.
  • Extensible and maintainable codebase.
  • Consistent experience across GDB and LLDB.

What are the use cases of the project?

  • Debugging Linux binaries or ELF files (GDB, LLDB).
  • Debugging Mach-O binaries on macOS (LLDB).
  • Linux kernel debugging (qemu-system) (GDB, LLDB).
  • Linux user-space emulation (qemu-user) (GDB).
  • Embedded debugging (ARM Cortex M* or RISC-V/32) (GDB, LLDB).
  • Reverse engineering.
  • Exploit development.
  • Hardware hacking.
pwndbg screenshot