Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
apphost e singlefilehost agora estão marcados como compatíveis com Intel CET (eles são compilados com a /CETCOMPAT opção). Essa alteração foi feita para aumentar a segurança de aplicativos .NET. No entanto, ele impõe uma limitação às bibliotecas compartilhadas que os aplicativos .NET podem carregar e interoperar. As bibliotecas não têm permissão para definir o contexto do thread para um local com um ponteiro de instruções que não esteja presente na pilha de sombras ou em uma tabela de endereços de continuação permitidos para tratamento de exceções.
Comportamento anterior
Anteriormente, as bibliotecas compartilhadas carregadas no processo .NET eram capazes de definir o contexto de thread usando SetThreadContext, RtlRestoreContext/NtContinue ou seus manipuladores de exceção para qualquer local no espaço de endereçamento do processo.
Novo comportamento
A partir do .NET 9, as bibliotecas compartilhadas carregadas no processo .NET só têm permissão para definir o contexto de thread usando SetThreadContext, RtlRestoreContext
- Presente na pilha de sombras.
- Em uma tabela de endereços de continuação permitidos para tratamento de exceções (gerado pela opção do
/EHCONTcompilador ou pelaSetProcessDynamicEHContinuationTargetsAPI).
Se as bibliotecas tentarem alterar um contexto de thread para qualquer outro local, o processo será encerrado.
Versão introduzida
.NET 9 Visualização 6
Tipo de mudança de rutura
Essa alteração pode afetar a compatibilidade binária.
Razão para a alteração
Ao habilitar o CET, aumenta-se a segurança dos aplicativos .NET, ao adicionar proteção de pilha imposta por hardware contra explorações de programação orientada ao retorno (ROP).
Ação recomendada
Soluções:
- Você pode desativar o CET adicionando
<CETCompat>false</CETCompat>ao arquivo de projeto do seu aplicativo (por exemplo, arquivo .csproj ). - Use o aplicativo de Segurança do Windows ou uma política de grupo para desativar a imposição de pilha com suporte de hardware para o aplicativo .NET específico. Para obter mais informações, consulte Habilitar proteção contra exploração.
APIs afetadas
- N/A