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