__security_init_cookie
Initialisiert das globale Sicherheitscookie.
Syntax
void __security_init_cookie(void);
Hinweise
Das globale Sicherheitscookie wird zum Schutz vor Pufferüberlauf in dem Code verwendet, der mit /GS (Puffer-Sicherheitsüberprüfung) kompiliert wurde, sowie in Code mit Ausnahmebehandlung. Beim Einstieg in eine vor Pufferüberlauf geschützte Funktion wird das Cookie auf dem Stapel abgelegt, und bei Funktionsende wird der Wert auf dem Stapel mit dem globalen Cookie verglichen. Jeglicher Unterschied zwischen diesen Werten weist darauf hin, dass ein Pufferüberlauf eingetreten ist. Das Programm wird daraufhin sofort beendet.
Wird normalerweise von der CRT aufgerufen, __security_init_cookie
wenn sie initialisiert wird. Wenn Sie die CRT-Initialisierung umgehen , z. B. wenn Sie /ENTRY
einen Einstiegspunkt angeben, müssen Sie sich selbst aufrufen __security_init_cookie
. Wenn __security_init_cookie
nicht aufgerufen wird, wird das globale Sicherheitscookies auf einen Standardwert festgelegt, und der Pufferüberlaufschutz wird kompromittiert. Da ein Angreifer diesen Cookie-Standardwert zum Manipulieren der Pufferüberlaufprüfungen nutzen kann, wird empfohlen, dass Sie beim Definieren Ihres eigenen Einstiegspunkts stets __security_init_cookie
aufrufen.
Der Aufruf von __security_init_cookie
muss erfolgen, bevor eine vor Pufferüberlauf geschützte Funktion eingegeben wird. Andernfalls wird ein unechter Pufferüberlauf erkannt. Weitere Informationen finden Sie unter C-Laufzeitfehler R6035.
Beispiel
Beispiele finden Sie unter C-Laufzeitfehler R6035.
Anforderungen
Routine | Erforderlicher Header |
---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie
ist eine Microsoft-Erweiterung der Standard-C-Laufzeitbibliothek. Informationen zur Kompatibilität finden Sie unter Kompatibilität.