__security_init_cookie
Initialise le cookie de sécurité global.
Syntaxe
void __security_init_cookie(void);
Notes
Le cookie de sécurité global est utilisé pour la protection contre le dépassement de mémoire tampon dans le code compilé avec GS (Vérification de la sécurité de la mémoire tampon), ainsi que dans le code qui utilise la gestion des exceptions. À l'entrée dans une fonction protégée contre le dépassement de mémoire tampon, le cookie est placé dans la pile. À la sortie, sa valeur dans la pile est comparée à celle du cookie global. Toute différence de valeur indique qu'un dépassement de mémoire tampon s'est produit, ce qui entraîne l'arrêt immédiat du programme.
Normalement, __security_init_cookie
il est appelé par le CRT lorsqu’il est initialisé. Si vous contournez l’initialisation CRT( par exemple, si vous utilisez /ENTRY
pour spécifier un point d’entrée), vous devez vous appeler __security_init_cookie
vous-même. Si __security_init_cookie
ce n’est pas le cas, le cookie de sécurité global est défini sur une valeur par défaut et la protection contre le dépassement de mémoire tampon est compromise. Dans la mesure où un pirate peut exploiter cette valeur de cookie par défaut pour tromper les contrôles de dépassement de mémoire tampon, nous vous recommandons de toujours appeler __security_init_cookie
quand vous définissez votre propre point d'entrée.
L'appel de __security_init_cookie
doit intervenir avant l'entrée dans une fonction protégée contre le dépassement de mémoire tampon. Sinon, un dépassement de mémoire tampon parasite est détecté. Pour plus d’informations, consultez Erreur R6035 du Runtime C.
Exemple
Consultez les exemples présentés dans Erreur R6035 du Runtime C.
Spécifications
Routine | En-tête requis |
---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie
est une extension Microsoft de la bibliothèque Runtime C standard. Pour plus d’informations sur la compatibilité, consultez Compatibilité.