__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.