Debuggez vos programmes avec GDB

Par FlUxIuS 2008-05-24 { Catégorie : Sécurité }

Bug ! Bug !

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 (the Gnu DeBugger)

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/

 

Lancement

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.

 

Les 8 commandes

Run

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.

 

Print

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

 

Break

Have a break, have a Kitty Cat...

Vous souhaitez faire une pause à une ligne précise ?

(gdb) break 2

 

Next/Step

Ces deux commandes sont similaires, à l'exception que next va à l'étape suivante et step la précedente lors de l'analyse des variables.

 

Continue

Après un break, vous pourrez continuer le programme :

(gdb) continue

 

Display

Cette commande permettra de voir le contenu d'une variable précise à chaques étapes :

(gdb) display nom_variable

 

Where

Après un run, si votre code plante tapez where afin que l'on puisse situer l'erreur.

 

Aller plus loin

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é.

Powered by SlashOn blog - © Sebastien D. (FlUxIuS)

Debian powered Server Creative Commons License W3c Validation
Cette création est mise à disposition sous un contrat Creative Commons