radare: a very complete debugger
After the Perl harness bolted onto GDB and before Metasm pulled me into Ruby, there was radare. A console-mode debugger written by pancake (Nibble), doing everything GDB does for exploitation, but with an interface designed for reverse engineering rather than application debugging.
What radare does that GDB does not
GDB is an application debugger: it stops on breakpoints, prints variables, follows calls. radare is a reverse engineering tool: it disassembles, analyses strings, finds gadgets, computes offsets and lets you navigate the binary like a filesystem.
$ radare ./main
[0x08048360]> pdf @ main
[0x08048360]> / ROP
[0x08048360]> aa; pdf
The commands are cryptic (pdf = print disassemble function, aa = analyse all, / = search), but after a week you do not go back to GDB for exploitation. It is a vim of reverse: the learning curve is steep and the gain is permanent.
What it changed for me
The Perl harness I built in 2007 drove GDB through Devel::GDB: read registers, set breakpoints, search memory for a value. radare does all that natively and adds what GDB does not: static analysis (no need to execute), ROP gadget search (keywords in the instructions), cross-reference analysis between functions and offset padding by heuristic.
It is the day I understood that automated exploitation did not need GDB: it needed a binary analyser. The harness kept running with GDB, but the direction was found.
What it is worth
radare (and its fork radare2, which took over) is the reverse engineering tool that survived everything: OllyDbg died, SoftICE died, Immunity had its time, GDB remains a debugger but not a reverser. radare is still actively developed, still free, still console-mode.
[edit: 2026] radare2 became a complete framework: r2 (the core), r2pm (package management), r2ghidra (integrated decompiler), r2frida (debugging on Android/iOS). The tool I used in 2008 to find JMP ESP gadgets has itself been the subject of code-execution CVEs since, the binary analyzer becoming an attack surface in turn.