diff --git a/README.md b/README.md index ece180e8e..be8b1fee6 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,31 @@ -This is a work-in-progress replacement for PEDA. -I was originally just going to use the [GEF code from Hugsy](https://github.com/hugsy/re-stuff.git) -but then I went a bit overboard. - -In particular, it's designed to be fast\*, failure-tolerant\*\*, and eventually portable -to Python27/Python3 as well as GDB/LLDB. - -Currently it works on GDB with Python3. - -\* Lots of use of `gdb.event` to manage cache lifetimes. -\*\* Automatic exploration of process maps when you're doing e.g. remote debugging - of a QEMU user stub and `/proc/$$/pids` is broken for `${reasons}`. - - -Snazzy features which may not work: - - -### Type Printing - -Hurray windbg. This works without any loaded symbols, and is architecture-appropriate. - -``` -geef> show arch -The target architecture is set automatically (currently i386:x86-64) -geef> dt hostent -hostent - +0x0000 h_name : char * - +0x0008 h_aliases : char ** - +0x0010 h_addrtype : int - +0x0014 h_length : int - +0x0018 h_addr_list : char ** -geef> dt passwd -passwd - +0x0000 pw_name : char * - +0x0008 pw_passwd : char * - +0x0010 pw_uid : __uid_t - +0x0014 pw_gid : __gid_t - +0x0018 pw_gecos : char * - +0x0020 pw_dir : char * - +0x0028 pw_shell : char * -``` \ No newline at end of file +# pwndbg + +A PEDA replacement. + +- Speed +- Resiliency +- Clean code + +Best supported on Ubuntu 14.04 with default `gdb` or `gdb-multiarch` (e.g. with Python3). + +## Installation + +Pretty easy. + +1. Clone the repo: `git clone https://github.com/zachriggle/pwndbg` +2. Add to `~/.gdbinit`: `source ~/pwndbg/gdbinit.py` + +## Screenshots + +Here's a screenshot of `pwndbg` working on an aarch64 binary running under `qemu-user`. + +![a](caps/a.png?raw=1) + +Here's a screenshot of `PEDA`. That it's aarch64 doesn't matter -- it chokes in the same way for everything qemu-user. + +![c](caps/b.png?raw=1) + +And here's a screenshot of GDB's built-in commands failing horribly. + +![c](caps/c.png?raw=1) diff --git a/caps/a.png b/caps/a.png new file mode 100644 index 000000000..61686a927 Binary files /dev/null and b/caps/a.png differ diff --git a/caps/b.png b/caps/b.png new file mode 100644 index 000000000..62c8eb83e Binary files /dev/null and b/caps/b.png differ diff --git a/caps/c.png b/caps/c.png new file mode 100644 index 000000000..3f0c15b9a Binary files /dev/null and b/caps/c.png differ