Compartilhar via


__security_init_cookie

Inicializa o cookie de segurança global.

void __security_init_cookie(void);

Comentários

O cookie de segurança global é usado para proteção de estouro do buffer no código compilado com /GS (verificação de segurança do buffer) e no código que usa o tratamento 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 é chamado pelo CRT quando é inicializado. Se você ignorar inicialização CRT, por exemplo, se usar /ENTRY para especificar um ponto de entrada, então 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 de estouro do buffer ficará 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 Erros R6035 (C Run-Time).

Exemplo

Consulte os exemplos em Erros R6035 (C Run-Time).

Requisitos

Rotina

Cabeçalho necessário

__security_init_cookie

<process.h>

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

Equivalência do .NET Framework

Não aplicável. Essa função só deve ser chamada a partir do código nativo, não do código gerenciado.

Consulte também

Outros recursos

Verificações de segurança do compilador em profundidade