GEF
(произносится ʤɛf — «Джефф») — это набор команд для x86/64, ARM, MIPS, PowerPC и SPARC, помогающий разработчикам эксплойтов и специалистам по обратному проектированию при использовании GDB старой школы. Он предоставляет GDB дополнительные функции с использованием API Python для помощи в процессе динамического анализа и разработки эксплойтов. Разработчики приложений также получат от этого выгоду, поскольку GEF устраняет большую часть неясностей, связанных с обычной GDB, избегая повторения традиционных команд или извлекая соответствующую информацию из среды выполнения отладки.
Просто убедитесь, что у вас есть GDB 10.0 или выше, скомпилированный с привязками Python3.10+, а затем:
# 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)
Вы можете сразу увидеть, что GEF установлен правильно, запустив GDB:
Некоторые из особенностей GEF
включают в себя:
GEF
работает от батареи и может быть установлен мгновенно.gef-legacy
). Посетите страницу «Снимок экрана», чтобы узнать больше, или попробуйте онлайн (пользователь: gef
/пароль: gef-demo
).
В отличие от других плагинов GDB, GEF имеет обширную и актуальную документацию. Пользователям рекомендуется обращаться к нему, поскольку это может помочь им в попытках использовать GEF. В частности, новым пользователям следует пройти через него (см. Часто задаваемые вопросы о распространенных проблемах при установке), а если проблема не устранена, попробуйте обратиться за помощью на канале Discord или сообщить о проблеме.
Документация | Лицензия | Совместимость | CI-тесты ( main ) |
---|---|---|---|
Чтобы принять участие, обратитесь к документации по вкладу и инструкциям по началу работы.
Еще один способ внести свой вклад в поддержание проекта — спонсировать его! Подробную информацию можно найти в спонсорской документации, чтобы вы могли стать частью списка этих замечательных спонсоров.