Share via


__security_init_cookie

Inicializa o cookie de segurança global.

Sintaxe

void __security_init_cookie(void);

Comentários

O cookie de segurança global é usado para proteção de estouro de buffer no código compilado com /GS (Buffer Security Check) e no código que usa a manipulação de exceção. Na entrada para uma função protegida contra estouro, o cookie é colocado na pilha e na saída o valor da pilha é comparado com o cookie global. Qualquer diferença entre eles indica que ocorreu um estouro do buffer e causa o encerramento imediato do programa.

Normalmente, __security_init_cookie é chamada pelo CRT quando é inicializada. Se você ignorar a inicialização do CRT, por exemplo, se usar /ENTRY para especificar um ponto de entrada, você deverá chamar __security_init_cookie por conta própria. Se __security_init_cookie não for chamado, o cookie de segurança global será definido como um valor padrão e a proteção contra saturação de buffer será comprometida. Como um invasor pode explorar esse valor de cookie padrão para vencer as verificações de estouro de buffer, recomendamos que você sempre chame __security_init_cookie ao definir seu próprio ponto de entrada.

A chamada para __security_init_cookie deve ser feita antes que qualquer função protegida conta estouro seja inserida. Caso contrário, será detectado um estouro de buffer falso. Para obter mais informações, consulte Erro em Runtime C R6035.

Exemplo

Consulte os exemplos em Erro em Runtime C R6035.

Requisitos

Rotina Cabeçalho necessário
__security_init_cookie <process.h>

__security_init_cookie é uma extensão da Microsoft à biblioteca padrão de runtime do C. Para obter informações sobre compatibilidade, consulte Compatibilidade.

Confira também

Microsoft Security Response Center