Hopp til innhold

Execute Disable (NX)

ArkitekturreferanseFeex

Execute Disable, også kalt NX eller XD i x86-terminologi, gjør det mulig for sidetabeller å merke minne som ikke-eksekverbart. Det er en maskinvarebyggekloss som brukes av operativsystemers retningslinjer for kjørebeskyttelse.

Dette må du vite

Execute Disable, også kalt NX eller XD i x86-terminologi, gjør det mulig for sidetabeller å merke minne som ikke-eksekverbart. Det er en maskinvarebyggekloss som brukes av operativsystemers retningslinjer for kjørebeskyttelse.

Slik fungerer det

Når den er aktivert i det gjeldende sidevekslingsmiljøet, vil en instruksjonshenting fra en side merket som ikke-eksekverbar feile i stedet for å utføre bytene sine. Sidetillatelser skiller kjøring fra datatilgang; programvare er ansvarlig for å tilordne passende tillatelser og håndtere overganger for legitim generert kode.

Hvor det er nyttig

Et OS kan tilordne en databuffer uten kjøretillatelse, slik at det å skrive maskinkodebytes til denne bufferen ikke gjør den til en kjørbar kodeside. JIT-kjøretidsmiljøer bruker dokumenterte minneadministrasjons-API-er og tillatelsesretningslinjer for generert kode.

Slik kontrolleres støtte og aktivering

CPUID.80000001H:EDX bit 20 oppregner x86 execute-disable-kapasiteten under den relevante leverandørdefinisjonen. Faktisk håndheving avhenger også av sidevekslingsmodus og OS-aktivering. Undersøk operativsystemets dokumenterte beskyttelsesstatus i stedet for å utlede den fra en CPU-modell.

Kapasitet, aktivering og håndheving må kontrolleres separat. En prosessor kan støtte en beskyttelse mens operativsystemet, applikasjonen eller retningslinjene for den virtuelle maskinen ikke aktiverer den. Et støttefelt i en database er ikke en attestering av et kjørende system.

Hva funksjonen ikke etablerer

NX fastslår ikke at en kjørbar fil er trygg, blokkerer ikke ethvert kode-gjenbruksangrep og beviser ikke Windows-kvalifisering. Data forblir lesbare eller skrivbare i henhold til separate tillatelser. Et funksjonsflagg betyr ikke at enhver minnetilordning følger en streng skrive/kjøre-policy.

Kompatibilitet og ytelse i praksis

Hold operativsystem, fastvare og berørt kjøretidsmiljø oppdatert. Hvis en beskyttelse avdekker et kompatibilitetsproblem, bruk leverandørens diagnostikk og støttede oppdateringer først. En bred beskyttelsesbryter kan påvirke urelaterte applikasjoner og bør følge en eksplisitt distribusjons- og gjenopprettingspolicy.

En praktisk sjekkliste for verifisering

  1. Registrer den nøyaktige prosessor- eller plattformmodellen og de involverte applikasjons-, OS- og kjøretidsversjonene. Bevar ordlyden i den faktiske feilen eller kravet.
  2. Sjekk produsentreferansen for akkurat den modellen, og undersøk deretter den faktiske kapasiteten og aktiverte tilstanden i miljøet der programmet kjører.
  3. Sammenlign ethvert krav til den valgte binærfilen eller baksiden. En lignende navngitt funksjon, et alias eller en bred teknologietikett er ikke tilstrekkelig.
  4. Bekreft at applikasjonen valgte den tiltenkte implementeringen. Bruk dens dokumenterte diagnostikk og en støttet reservemetode når kravene ikke er oppfylt.
  5. Gjør én støttet endring om gangen og gjenta den samme arbeidsbelastningen. Hold den opprinnelige konfigurasjonen og gjenopprettingsstien tilgjengelig.

Hvis funksjonen er oppført, men programvare ikke kan bruke den

Start med den nøyaktige komponenten som feiler. En maskinwaredatabase beskriver registrert kapasitet; operativsystemet eller hypervisoren kan eksponere et annet reelt miljø. En feil om ulovlig instruksjon krever også undersøkelse av den faktiske feilende instruksjonen og binærbyggingen, fordi korrupsjon eller en urelatert, ustøttet instruksjon kan gi et lignende symptom.

Installer applikasjonen, driveren eller kjøretidsversjonen som støttes for den nøyaktige plattformen, og bruk om nødvendig leverandørens dokumenterte grunnlinje- eller reservebygg. En programvareoppdatering kan ikke opprette en instruksjon som prosessoren mangler fastvare. Endringer i fastvare og sikkerhetspolicy bør følge systemprodusentens prosedyre og en gjenopprettingsplan i stedet for en generisk optimaliseringsoppskrift.

Kilder og omfang for denne forklaringen

Intel 64 and IA-32 Architectures Software Developer's Manual

Disse referansene etablerer arkitektonisk oppførsel og programvarekrav. De verifiserer ikke uavhengig hver funksjonsverdi på en koblet maskinvaremodells side. For modellstøtte, bruk den sidens produsentdokumentasjon og kontroller den reelle systemkonfigurasjonen. Denne artikkelen oppgir ikke en referansemåling, sertifisering eller dato for uavhengig gjennomgang.

Kilder og verifisering

Redaksjonelt eierskap: Feex. Ingen uavhengig vurderingsdato er registrert. Hvordan vi gjør undersøkelser.

Var denne artikkelen nyttig?

Et ja eller nei holder. Velg en grunn hvis du vil, eller legg til en kort kommentar.

Var denne artikkelen nyttig?