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