Skip to content

Glossary

Programmation orientée retour (ROP)

Une technique d'exploitation qui enchaîne de petits fragments de code finissant par des RET pour exécuter une logique arbitraire sans injecter de code.

La programmation orientée retour (ROP, Return-Oriented Programming) est une technique d'exploitation qui contourne la mémoire non exécutable (NX/DEP) en assemblant de petites séquences de code existant — appelées gadgets — qui se terminent chacune par une instruction RET. En écrasant la pile avec une chaîne d'adresses de gadgets, l'attaquant contrôle l'exécution sans injecter de nouveau code. Chaque RET dépile l'adresse du gadget suivant, les enchaînant les uns aux autres. Une chaîne ROP est une forme de shellcode construite entièrement à partir de code déjà présent dans le binaire ou les bibliothèques chargées. Des outils comme ROPgadget, pwntools et ropper automatisent la découverte de gadgets.