다음을 통해 공유


__security_init_cookie

전역 보안 쿠키를 초기화합니다.

구문

void __security_init_cookie(void);

설명

전역 보안 쿠키는 /GS(버퍼 보안 검사)를 사용하여 컴파일된 코드와 예외 처리를 사용하는 코드에서 버퍼 오버런을 방지하는 데 사용됩니다. 오버런 방지 함수로 진입 시 쿠키가 스택에 배치되며 해당 함수 종료 시 스택의 값을 전역 쿠키와 비교합니다. 쿠키의 값이 서로 다르면 버퍼 오버런이 발생한 것이며 프로그램이 즉시 종료됩니다.

일반적으로 __security_init_cookie CRT는 초기화될 때 호출됩니다. CRT 초기화를 우회하는 경우(예: 진입점을 지정하는 데 사용하는 /ENTRY 경우) 자신을 호출 __security_init_cookie 해야 합니다. __security_init_cookie 호출되지 않으면 전역 보안 쿠키가 기본값으로 설정되고 버퍼 오버런 보호가 손상됩니다. 공격자는 이 기본 쿠키 값을 악용하여 버퍼 오버런 검사를 통과할 수 있으므로 진입점을 직접 정의할 때는 항상 __security_init_cookie를 호출하는 것이 좋습니다.

__security_init_cookie는 오버런 방지 함수에 진입하기 전에 호출해야 합니다. 그렇지 않으면 가상 버퍼 오버런이 검색됩니다. 자세한 내용은 C 런타임 오류 R6035를 참조하세요.

예시

C 런타임 오류 R6035의 예제를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
__security_init_cookie <process.h>

__security_init_cookie는 표준 C 런타임 라이브러리에 대한 Microsoft 확장입니다. 호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

Microsoft 보안 대응 센터