__security_init_cookie

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Initialise le cookie de sécurité global.

void __security_init_cookie(void);  

Le cookie de sécurité global est utilisé pour la protection de saturation de mémoire tampon dans le code compilé avec /GS (Buffer Security Check) et 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.

En règle générale, __security_init_cookie est appelé par le CRT quand il est initialisé. Si vous ignorez l’initialisation CRT, par exemple, si vous utilisez /ENTRY pour spécifier un point d’entrée, vous devez appeler __security_init_cookie vous-même. Si __security_init_cookie n'est pas appelé, une valeur par défaut est affectée au cookie de sécurité global. Par ailleurs, 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 C Runtime erreur R6035.

Consultez les exemples de C Runtime erreur R6035.

RoutineEn-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é, voir Compatibilité.

Non applicable. Cette fonction doit être appelée uniquement à partir du code natif, et non à partir du code managé.

Contrôles de sécurité du compilateur en profondeur

Afficher: