1. Introduction
Depuis des années, l'exploitation de failles de type « buffer overflow » a permis de compromettre des systèmes informatiques.
Le principe d'exploitation le plus connu est le suivant :
1) Corrompre la mémoire à l'aide d'erreurs présentes dans le logiciel, généralement un débordement de mémoire sur la pile. Lorsque le processeur appelle une fonction (instruction call), l'adresse de retour de la fonction appelante est stockée dans la pile. Or celle-ci est aussi utilisée pour le stockage des variables. Si un débordement survient lors de l’écriture dans un buffer, il est possible de modifier l'adresse de retour, et donc de rediriger le flux d'exécution à l'adresse de notre choix au moment de l'exécution de l'instruction ret.
2) Une fois le flux d’exécution contrôlé, il est possible de sauter sur un bloc de code assembleur (payload) précédemment injecté en mémoire. Celui-ci va permettre à l'attaquant de prendre la main sur la machine, lui donnant...
