Skip to content

Glossary

Gadget

Courte séquence d'instructions existantes finissant par un RET (ou similaire), brique de base des chaînes de Return-Oriented Programming.

Un gadget est une courte séquence d'instructions — typiquement 1 à 5 instructions — se terminant par une instruction de contrôle de flux telle que RET, JMP [reg] ou CALL [reg], trouvée à l'intérieur d'un binaire ou d'une bibliothèque existante. Les gadgets sont les briques de base élémentaires du Return-Oriented Programming (ROP) : chaque gadget effectue une petite opération (par exemple, POP RAX; RET charge une valeur dans RAX), et l'enchaînement de nombreux gadgets permet de construire des calculs arbitraires. La qualité et la disponibilité des gadgets dépendent de l'ISA et de la quantité de code chargée dans le processus — les grandes bibliothèques comme libc ou ntdll.dll en sont de riches sources.