Présentation d'un outil fort utile dans la programmation et détection de failles dans un exécutable ( et plus encore !! ).
"Mouhahaha je perderais plus de temps à chercher mes erreurs !" ( programmeur content grâce à cet article )
---
Plutôt que de vous présenter OllyDbg qui est un application très fiable et simple d'utilisation, je me suis dit que GDB vous ferais plaisir. D'autant plus qu'il est très utilisé dans le monde de la sécurité.
Mais avant tout qu'est-ce que c'est ?
GDB est une puissant debugger en ligne de commande permettant de retrouver les erreurs faites lorsque l'on programme mais elle permet aussi l'analyse et l'exploitation de failles (Ce que nous verrons par la suite dans les prochains articles).
Le télécharger : http://www.gnu.org/software/gdb/download/
Avant de lancer votre machine par confusion, lancer un de vos exécutable avec la commande :
# gdb ./programme
Vous vous trouvez dès à présent dans le debugger, il ne suffit plus qu'à connaître les 8 commandes utiles.
Permet de lancer le programme et s'arrête si une erreur est rencontrée en indiquant la ligne tout en précisant l'instruction qui gène.
Retapez sur run pour recommencer le debuggage.
Cette commande est très très utile lorsque l'on veut simuler notre programme et voir ce que les variables prennent comme valeurs (normalement les programmeurs savent compiler leurs programmes avec leurs cerveaux... normalement).
Vous devez néaumoins préciser le nom de la variable voulue (logique sinon on serait cap d'afficher 999999 variables xD).
(gdb) print nom_variable
Have a break, have a Kitty Cat...
Vous souhaitez faire une pause à une ligne précise ?
(gdb) break 2
Ces deux commandes sont similaires, à l'exception que next va à l'étape suivante et step la précedente lors de l'analyse des variables.
Après un break, vous pourrez continuer le programme :
(gdb) continue
Cette commande permettra de voir le contenu d'une variable précise à chaques étapes :
(gdb) display nom_variable
Après un run, si votre code plante tapez where afin que l'on puisse situer l'erreur.
Les debugger ne permettent pas d'avoir le code source car ils effectuent une interprétation des tâches effectuées par le programme. Pour aller plus loin je vous conseil de vous renseigner sur l'ASSEMBLER : http://asm.developpez.com/
Nous verrons des exemples plus approfondis sur l'utilisation de gdb surtout au niveau sécurité.
Cette création est mise à disposition sous un contrat Creative Commons