--- title: "Sécurité logicielle : TD5 stack overflow et shellcode" date: 2023-02-17 tags: ["Assembleur", "x86"] categories: ["Sécurité logicielle", "TD"] --- ## Partie 1 Avec l'aide de `pframe`, nous pouvons voir que lorsque notre boucle itère pour la onzième fois, l'affectation `t[11]` écrase `i` et le remet à 0. A ce moment notre boucle reviens à départ; une boucle infinie se produit alors. C'est la conséquence du *buffer overflow* causée par une mauvaise maitrise des boucles et variables associées. ## Partie 2 ### question 1 et 2 Effectivement le code vu en cours est repris dans cet exemple. Nous sommes cependant en présence de code *C* avec du code assembleur directement écrit en *hexadécimal*. ### question 4 Lors de l'execution de notre attache en l'observant avec gdb, nous pouvons clairement les éléments de notre attaque : les éléments de la pile contenant les adresses vers notre *shellcode*, les paffing avec des `nop` et le *shellcode*. On voit aussi apparaitre notre *Instruction Pointer* dans la pile lorsque notre shellcode est exécuté. Les différents paramètres pour **l'appel système** se mettent alors en places.