GEF (GDB Enhanced Features) - une expérience moderne pour GDB avec des capacités de débogage avancées pour les développeurs d'exploits et les ingénieurs en rétro-ingénierie sur Linux
GEF (prononcé ʤɛf - "Jeff") est un ensemble de commandes pour x86/64, ARM, MIPS, PowerPC et SPARC destiné à assister les développeurs d'exploits et les rétro-ingénieurs lorsqu'ils utilisent le bon vieux GDB. Il fournit des fonctionnalités supplémentaires à GDB via l'API Python pour aider lors du processus d'analyse dynamique et de développement d'exploits. Les développeurs d'applications en bénéficieront également, car GEF dissipe une grande partie de l'obscurité de GDB standard, évitant de répéter les commandes traditionnelles ou mettant en évidence les informations pertinentes du contexte d'exécution du débogage.
Assurez-vous simplement d'avoir GDB 10.0 ou supérieur compilé avec les liaisons Python3.10+, puis :
# 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)
Vous pouvez immédiatement voir que GEF est correctement installé en lançant GDB :

Voici quelques fonctionnalités de GEF :
GEF est livré avec ses batteries et s'installe instantanémentgef-legacy).Consultez la page de captures d'écran pour plus d'exemples ou essayez en ligne (utilisateur : gef/mot de passe : gef-demo)
Contrairement aux autres plugins GDB, GEF dispose d'une documentation extensive et à jour. Il est recommandé aux utilisateurs de s'y référer car elle peut les aider dans leurs tentatives d'utilisation de GEF. En particulier, les nouveaux utilisateurs doivent la parcourir (voir la FAQ pour les problèmes d'installation courants), et si le problème persiste, essayer de demander de l'aide sur le canal Discord ou soumettre un problème.
Pour vous impliquer, référez-vous à la documentation sur la contribution et aux directives pour commencer.
Une autre façon de contribuer à maintenir le projet en vie est de le sponsoriser ! Consultez la documentation sur le sponsoring pour plus de détails afin que vous puissiez faire partie de la liste de ces formidables sponsors.