Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Инициализирует глобальный cookie-файл безопасности.
Синтаксис
void __security_init_cookie(void);
Замечания
Глобальный cookie-файл безопасности используется для защиты от переполнения буфера в коде, скомпилированном с параметром /GS (проверка безопасности буфера), и в коде, в котором используется структурная обработка исключений. При входе в функцию с защитой от переполнения cookie-файл помещается в стек, а при выходе значение в стеке сравнивается с глобальным cookie-файлом. Любое различие между ними указывает, что произошло переполнение буфера, что приводит к немедленному завершению работы программы.
Как правило, __security_init_cookie вызывается CRT при инициализации. Если обойти инициализацию CRT , например, если вы используете /ENTRY для указания точки входа, необходимо вызвать __security_init_cookie себя. Если __security_init_cookie не вызывается, глобальный файл cookie безопасности имеет значение по умолчанию, а защита от переполнения буфера скомпрометирована. Злоумышленник может воспользоваться этим значением cookie-файла по умолчанию, чтобы обойти проверку переполнения буфера, поэтому рекомендуется всегда вызывать __security_init_cookie при определении собственной точки входа.
Функцию __security_init_cookie необходимо вызывать до входа в любую функцию, защищенную от переполнения; в противном случае будет обнаружено ложное переполнение буфера. Подробнее: Ошибка R6035 времени выполнения C.
Пример
Примеры см. в разделе Ошибка R6035 времени выполнения C.
Требования
| Маршрут | Обязательный заголовок |
|---|---|
__security_init_cookie |
<process.h> |
__security_init_cookie — расширение Майкрософт для стандартной библиотеки выполнения C. Дополнительные сведения о совместимости см. в разделе Совместимость.