Freigeben über


__security_init_cookie

Initialisiert das globale Sicherheitscookie.

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.

Normalerweise wird __security_init_cookie von der C-Laufzeitbibliothek (CRT) beim Start aufgerufen. Wenn Sie die CRT-Initialisierung umgehen, z. B. wenn Sie /ENTRY zum Angeben eines Einstiegspunkts verwenden, müssen Sie __security_init_cookie selbst aufrufen. Wenn __security_init_cookie nicht aufgerufen wird, wird das globale Sicherheitscookie auf den Standardwert festgelegt, und der Schutz vor Pufferüberlauf ist beeinträchtigt. 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.

.NET Framework-Entsprechung

Nicht zutreffend. Diese Funktion sollte vom systemeigenen Code nur aufgerufen, aber nicht verwaltet werden.

Siehe auch

Weitere Ressourcen

Compiler-Sicherheitsprüfungen im Detail