Freigeben über


__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.

Siehe auch

Microsoft Security Response Center