• Stars
    star
    6,785
  • Rank 5,760 (Top 0.2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux

logo

Discord Docs Try GEF

GEF (pronounced ʤɛf - "Jeff") is a set of commands for x86/64, ARM, MIPS, PowerPC and SPARC to assist exploit developers and reverse-engineers when using old school GDB. It provides additional features to GDB using the Python API to assist during the process of dynamic analysis and exploit development. Application developers will also benefit from it, as GEF lifts a great part of regular GDB obscurity, avoiding repeating traditional commands, or bringing out the relevant information from the debugging runtime.

Instant Setup

Simply make sure you have GDB 8.0 or higher compiled with Python3.6+ bindings, then:

# via the install script
## using curl
$ bash -c "$(curl -fsSL https://gef.blah.cat/sh)"

## using wget
$ bash -c "$(wget https://gef.blah.cat/sh -O -)"

# or manually
$ wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py
$ echo source ~/.gdbinit-gef.py >> ~/.gdbinit

# or alternatively from inside gdb directly
$ gdb -q
(gdb) pi import urllib.request as u, tempfile as t; g=t.NamedTemporaryFile(suffix='-gef.py'); open(g.name, 'wb+').write(u.urlopen('https://tinyurl.com/gef-main').read()); gdb.execute('source %s' % g.name)

You can immediately see that GEF is correctly installed by launching GDB:

gef-context

A few of GEF features include:

  • One single GDB script
  • Entirely architecture agnostic, NO dependencies: GEF is battery-included and is installable instantly
  • Fast limiting the number of dependencies and optimizing code to make the commands as fast as possible
  • Provides a great variety of commands to drastically change your experience in GDB.
  • Easily extensible to create other commands by providing d more comprehensible layout to GDB Python API.
  • Full Python3 support (Python2 support was dropped - see gef-legacy).
  • Built around an architecture abstraction layer, so all commands work in any GDB-supported architecture such as x86-32/64, ARMv5/6/7, AARCH64, SPARC, MIPS, PowerPC, etc.
  • Suited for real-life apps debugging, exploit development, just as much as CTF
  • And a lot more commands contributed by the community available on GEF-Extras !!

Check out the Screenshot page for more or try it online (user:gef/password:gef-demo)

Documentation

Unlike other GDB plugins, GEF has an extensive and up-to-date documentation. Users are recommended to refer to it as it may help them in their attempts to use GEF. In particular, new users should navigate through it (see the FAQ for common installation problems), and the problem persists, try to reach out for help on the Discord channel or submit an issue.

Current status

Documentation License Compatibility CI Tests (main)
Documentation MIT Python 3 CI Test for GEF

Contribute

To get involved, refer to the Contribution documentation and the guidelines to start.

Sponsors

Another way to contribute to keeping the project alive is by sponsoring it! Check out the sponsoring documentation for details so you can be part of the list of those awesome sponsors.

Happy Hacking 🍻

More Repositories

1

cemu

Cheap EMUlator: lightweight multi-architecture assembly playground
Python
932
star
2

defcon_27_windbg_workshop

DEFCON 27 workshop - Modern Debugging with WinDbg Preview
Python
696
star
3

gdb-static

Public repository of statically compiled GDB and GDBServer
315
star
4

CFB

Canadian Furious Beaver is a ProcMon-style tool designed only for capturing IRPs sent to any Windows driver.
C++
303
star
5

stuff

Unsorted, raw, ugly & probably poorly usable tools for reversing, exploit and pentest
Python
216
star
6

windbg_js_scripts

Toy scripts for playing with WinDbg JS API
JavaScript
212
star
7

proxenet

The ONLY hacker friendly proxy for webapp pentests.
C
211
star
8

binja-retdec

Binary Ninja plugin to decompile binaries using RetDec API
Python
164
star
9

gef-extras

Extra goodies for GEF to (try to) make GDB suck even less
Python
147
star
10

pwn--

pwn++ is a Windows & Linux library oriented for exploit dev but mostly used to play with modern C++ features (17->26)
C++
119
star
11

ctfhub

Where CTFs happen
Python
76
star
12

recon_2024_windbg_workshop

JavaScript
67
star
13

gef-binja

Interface GDB-GEF with Binary Ninja
Python
58
star
14

codebro

Web based code browser using clang to provide basic code analysis.
HTML
43
star
15

modern.ie-vagrant

Modern.ie for Vagrant
PowerShell
42
star
16

bochscpu-python

Python bindings for BochsCPU
C++
33
star
17

binja-headless

Binja (sort of) headless
Python
31
star
18

hevd

Public repository for HEVD exploits
C
20
star
19

modern

A tool to unify the command line of Windows/Linux/MacOS using modern Rust tools
Python
20
star
20

shared-kernel-user-section-driver

Experiment to use sections as User/Kernelmode comm vector
C++
20
star
21

ida-headless

IDA (sort of) headless
Python
19
star
22

gef-legacy

Legacy version of GEF running for GDB+Python2
Python
18
star
23

modern-cpp-windows-driver-template

Windows driver template, using C++20 & cmake & GithubActions
C++
16
star
24

sstoper

SSTP VPN client for Linux
C
16
star
25

proxenet-plugins

Repository for proxenet plugins
Python
14
star
26

ropgadget-rs

Another (bad) ROP gadget finder, but this time in Rust
Rust
14
star
27

pywii

PyWii is a tool to help you control your PC from your Wiimote using Bluetooth.
Python
8
star
28

bakassabl

Cheap Linux sandboxer based on seccomp
C
7
star
29

gef-structs

Open repositories of custom structures for GDB Enhanced Features (GEF)
5
star
30

dji-joe

DJI Phantom3 takeover framework
Go
5
star
31

gef-docker

Ready to use Docker environment for GEF (used for https://demo.gef.blah.cat gef/gef-demo)
Python
5
star
32

socat-rs

A port forwarder for Windows written in 10min. Don't expect much from it...
Rust
4
star
33

modern-cpp-template

A template repository for my C++ projects, with docs and CI
CMake
3
star
34

CFB-cli

Command line tools for CFB
Python
2
star
35

hugsy

2
star
36

dufe

Dummy Universal Fuzzer Ever
Python
2
star
37

dji-jane

DJI Phantom3 detection tool - server part of DJI-Joe
Go
1
star
38

pwn--template

Kickstart C++ exploits with pwn++, with auto-build by GithubActions
CMake
1
star