2b74c8d5f0 | ||
---|---|---|
caps | ||
pwndbg | ||
.gitignore | ||
LICENSE.md | ||
README.md | ||
gdbinit.py | ||
ida_script.py | ||
requirements.txt |
README.md
BETA SOFTWARE
This is barely a beta. There are currently no versioned releases, only master
. I push to master with impunity. There are no tests. If anything works at all, consider yourself lucky.
Feature contributions and bugfixes are both very welcome :)
pwndbg
A PEDA replacement. In the spirit of our good friend windbg
, pwndbg
is pronounced pwnd-bag
.
- Speed
- Resiliency
- Clean code
Best supported on Ubuntu 14.04 with default gdb
or gdb-multiarch
(e.g. with Python3).
Installation
git clone https://github.com/zachriggle/pwndbg
echo "source $PWD/pwndbg/gdbinit.py" >> ~/.gdbinit
Prerequisites
Capstone 4.0
Currently this is only available via a source build.
git clone https://github.com/aquynh/capstone
cd capstone
git checkout -t origin/next
sudo ./make.sh install
cd bindings/python
sudo python2 setup.py install # Ubuntu 12.04, GDB uses Python2
sudo python3 setup.py install # Ubuntu 14.04+, GDB uses Python3
pycparser
pip install pycparser
Features
Does most things that PEDA does. Doesn't do things that PEDA does that pwntools or binjitsu (my fork of pwntools) do better.
Also has a basic windbg compat layer for e.g. dd
, eb
, da
, dps
. Now you can even eb eip 90
!
For most standard function calls, it knows how many arguments there are and can print out the function call args.
Screenshots
Here's a few screenshots of some of the cool things pwndbg does.
Conditional jump evaluation and jump following
Here's a screenshot of pwndbg
working on an aarch64 binary running under qemu-user
.
Here's a screenshot of PEDA
. That it's aarch64 doesn't matter -- it chokes in the same way for everything qemu-user.
And here's a screenshot of GDB's built-in commands failing horribly. Note that while, yes, it gives output -- the addresses it does give are all wrong, and are just file offsets.