Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
apphost
a singlefilehost
jsou nyní označeny jako Intel CET – kompatibilní (jsou zkompilovány s /CETCOMPAT
možností). Tato změna byla provedena kvůli zvýšení zabezpečení aplikací .NET. Omezuje ale sdílené knihovny, se kterými můžou aplikace .NET načítat a interopovat. Knihovny nemohou nastavit kontext vlákna na umístění s ukazatelem instrukce, který není v zásobníku stínu nebo v tabulce povolených adres pokračování pro zpracování výjimek.
Předchozí chování
Dříve byly sdílené knihovny načtené do procesu .NET schopny nastavit kontext vlákna pomocí SetThreadContext, RtlRestoreContext/NtContinue
Nové chování
Počínaje rozhraním .NET 9 jsou sdílené knihovny načtené do procesu .NET povoleny pouze k nastavení kontextu vlákna pomocí setThreadContext, RtlRestoreContext/NtContinue
- Prezentovat ve stínovém zásobníku.
- V tabulce povolených adres pro pokračování pro zpracování výjimek (generované
/EHCONT
možností kompilátoruSetProcessDynamicEHContinuationTargets
nebo rozhraním API)
Pokud se knihovny pokusí změnit kontext vlákna na jiné umístění, proces se ukončí.
Zavedená verze
.NET 9 Preview 6
Typ zásadní změny
Tato změna může ovlivnit binární kompatibilitu.
Důvod změny
Povolení CET vylepšuje zabezpečení aplikací .NET díky akceptování ochrany zásobníku vynucené hardwarem proti zneužití technikou Return-Oriented Programming (ROP).
Doporučená akce
Alternativní řešení:
- Cet můžete zrušit přidáním
<CETCompat>false</CETCompat>
do souboru projektu vaší aplikace (například souboru .csproj ). - Pomocí aplikace Zabezpečení Windows nebo zásad skupiny se odhlaste z vynucení zásobníku podporovaného hardwarem pro konkrétní aplikaci .NET. Další informace naleznete v tématu Povolení ochrany zneužití.
Ovlivněná rozhraní API
- –