Aller au contenu

Glossaire

Structured Exception Handling (SEH)

Le mécanisme de gestion des exceptions de Windows ; sur x86 32 bits, une liste chaînée de gestionnaires sur la pile qu'un débordement peut écraser pour détourner le contrôle.

Le Structured Exception Handling (SEH) est le mécanisme de Windows pour gérer les exceptions telles que les violations d'accès. Sur x86 32 bits, il est implémenté sous la forme d'une liste chaînée d'enregistrements stockés sur la pile, chacun contenant un pointeur vers l'enregistrement suivant et un pointeur vers une fonction gestionnaire. Lorsqu'une exception survient, le répartiteur parcourt la chaîne en appelant les gestionnaires.

Comme les enregistrements résident sur la pile, un débordement de pile peut en écraser un. L'écrasement SEH classique fixe le gestionnaire sur un gadget pop pop ret et le champ enregistrement-suivant sur un saut court, de sorte que le répartiteur amène l'exécution dans le shellcode de l'attaquant. SafeSEH (une table de gestionnaires à la compilation) et SEHOP (une vérification de la chaîne à l'exécution) le mettent en échec. Voir Les écrasements SEH.