__security_init_cookie
Inicjuje globalny plik cookie zabezpieczeń.
Składnia
void __security_init_cookie(void);
Uwagi
Globalny plik cookie zabezpieczeń jest używany do ochrony przed przekroczeniem buforu w kodzie skompilowanym za pomocą /GS (sprawdzanie zabezpieczeń buforu) i w kodzie korzystającym z obsługi wyjątków. Po wejściu do funkcji chronionej przez przekroczenie plik cookie jest umieszczany na stosie, a po wyjściu wartość na stosie jest porównywana z globalnym plikiem cookie. Każda różnica między nimi wskazuje, że wystąpiło przekroczenie buforu i powoduje natychmiastowe zakończenie programu.
__security_init_cookie
Zwykle jest wywoływany przez CRT, gdy jest inicjowany. Jeśli pominiesz inicjację CRT — na przykład jeśli używasz /ENTRY
do określenia punktu wejścia , musisz wywołać __security_init_cookie
siebie. Jeśli __security_init_cookie
nie zostanie wywołana, globalny plik cookie zabezpieczeń zostanie ustawiony na wartość domyślną, a ochrona przed przekroczeniem buforu zostanie naruszona. Ponieważ osoba atakująca może wykorzystać tę domyślną wartość pliku cookie w celu pokonania kontroli przekroczenia buforu, zalecamy, aby zawsze wywoływać __security_init_cookie
wywołanie podczas definiowania własnego punktu wejścia.
Wywołanie musi __security_init_cookie
zostać wykonane przed wejściem jakiejkolwiek funkcji chronionej przed przekroczeniem. W przeciwnym razie zostanie wykryte fałszywe przepełnienie buforu. Aby uzyskać więcej informacji, zobacz Błąd czasu wykonania języka C R6035.
Przykład
Zobacz przykłady w artykule Błąd czasu wykonania języka C R6035.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie
to rozszerzenie firmy Microsoft do standardowej biblioteki środowiska uruchomieniowego języka C. Aby uzyskać informacje o zgodności, zobacz Zgodność.