GEF (GDB Enhanced Features) - современный опыт для GDB с расширенными возможностями отладки для разработчиков эксплойтов и реверс-инженеров на Linux
GEF (произносится джэф — «Джефф») — это набор команд для x86/64, ARM, MIPS, PowerPC и SPARC, предназначенный для помощи разработчикам эксплойтов и специалистам по реверс-инжинирингу при использовании старого доброго GDB. Он добавляет в GDB дополнительные возможности через Python API, облегчая процесс динамического анализа и разработки эксплойтов. Разработчики приложений также выиграют от его использования, поскольку GEF снимает значительную часть неясностей стандартного GDB, избавляя от повторения обычных команд и выводя релевантную информацию из отладочного окружения.
Просто убедитесь, что у вас есть GDB версии 10.0 или выше, скомпилированный с поддержкой Python3.10+, а затем:
# через скрипт установки
## с использованием curl
$ bash -c "$(curl -fsSL https://gef.blah.cat/sh)"
## с использованием wget
$ bash -c "$(wget https://gef.blah.cat/sh -O -)"
# или вручную
$ wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py
$ echo source ~/.gdbinit-gef.py >> ~/.gdbinit
# или непосредственно из gdb
$ 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)
Вы сразу увидите, что GEF установлен корректно, запустив GDB:

Некоторые возможности GEF:
gef-legacy)Посмотрите страницу со скриншотами или попробуйте онлайн (пользователь: gef / пароль: gef-demo)
В отличие от других плагинов GDB, у GEF есть обширная и актуальная документация. Пользователям рекомендуется обращаться к ней — это может помочь при использовании GEF. В частности, новым пользователям следует изучить её (см. FAQ для решения распространённых проблем с установкой). Если проблема сохраняется, попробуйте обратиться за помощью на канале Discord или создать issue.
Чтобы принять участие, обратитесь к документации по вкладу и руководству.
Ещё один способ помочь проекту оставаться на плаву — стать спонсором! Посмотрите документацию по спонсорству, чтобы узнать подробности и возможно попасть в список замечательных спонсоров.