Ниво на защита и на страницата-битов прилагане на забраната, dev64
5.13 ЗАЩИТА на ниво страница и да изпълни-ДЕАКТИВИРАЙТЕ BIT
В допълнение към защитата, осигурена от флаговете U / S (ръководство / ръководител) и R / W (четене / писане), пейджирани структури, използвани с PAE пейджинг или IA-32д пейджинг (виж гл. 4) осигурява бита изпълнение забрана (executedisable ). Това малко осигурява допълнителна защита на страниците на данни. Способността да се забрани страници с данни за изпълнение може да ви предпази от зловреден софтуер се опитва да стартира код от страниците на данни. Такава възможност се предоставя на:
- 32-битов защитен режим с ППР
- IA-32д в (режим 64 бита) на режим
Въпреки, че се изпълни-малко забраните не се изискват никакви допълнителни инструкции за обработка, за да работи, той е длъжен да включва операционни системи и режим на контролирано ППР, определящи това малко до нивото на една страница. Ако битът е изпълните-забраните за страницата е зададен, тази страница може да се използва само за данни. Опитвайки се да изпълни код от паметта на страницата на установената изпълни-малко забраните, води до по изключение за генериране на страницата-виновен.
Способността да се забрани изпълнението на кода се поддържа само в режим на ППР и IA-32e и не се поддържа в конвенционален 32-битов режим на стр. Съществуващите механизми за защита на паметта (вж. Раздел 5.11, "ниво страница Защита"), да продължи да работи, независимо от повода изпълни-забраните.
Откриването и включването на помощите за изпълнение-малко забраните
5.13.1 откриване и Активиране Изпълнение-Изключване на способностите
Софтуерът може да се определи присъствието podderzhiki изпълни-малко забраните, използвайки инструкциите CPUID. CPUID.80000001H: EDX.NX [малко 20] = 1 означава, че изпълнява-Деактивиране поддържа. Ако се изпълни-Забрани се поддържа, програмата може да се даде възможност да го подкрепят инсталация IA32_EFER.NXE [ухапа 11] в 1-цу.
IA32_EFER на разположение, ако CPUID.80000001H.EDX [малко 20 или 29] = 1. Ако се изпълни-Забрани не се поддържа, инсталацията влизане IA32_EFER.NXE #GP предизвиква изключение. Вижте. Таблица 5-4.
(Таблица ръководства Intel)
Защита на страници с Execute Disable-
5.13.2 Execute Disable-защита Page
Изпълнение-малко забраните в страница структура подобрява защитата на страниците на данни. инструкции на процесора могат да се зареждат от паметта, ако IA32_EFER.NXE = 1 и изпълнява-малко забраните се определя на всяка виртуална структура се използва за показване на страницата. Таблица 5-5 изброява разрешеното използване на страницата, в зависимост от стойността executedisable бит (бит 63) на съответния запис на всяко ниво на страница структури. Изпълнение забрана може да се активира с помощта на изпълнение-малко деактивиране на всяко ниво на страница структури, независимо от стойността на съответния бит в другите нива. Когато се изпълни-Забрани не е активирана, страницата може да се използва като страница за данни и как се кодира.
(Таблица ръководства Intel)
За 32-битов режим ППР активиран въздействието от определянето на изпълнение-малко забраните за страниците на код и данните, представени Таблица 5-6, 5-7.
(Лидерство Маси от Intel)
Проверка излишни битове
5.13.3 запазени Bit Проверка
Таблица 5-8 показва резервираните бита, когато малко сканирани изпълни-Изключване на проверката е активирана в процесора (CR4.PAE = 1 и IA32_EFER.NXE = 1). Маси 5-8 и 5-9 показват теста в режим на следващата страница:
- Не-PAE 4-КБайт пейджинг: 4-КБайт страници само пейджинг (CR4.PAE = 0,
CR4.PSE = 0).
(Таблица ръководства Intel)
Ако тестът се изпълни забраните не е включен или не е на разположение, проверка в 64-битов режим включва включително 63 проверки бита. Проверката на тази и други бита са запазени за наследство (предишните) 32-битов режим е показано в Таблица 5-10.
(Таблица ръководства Intel)
Работа изключения
5.13.4 Изключение Работа
Изпълнение-деактивиране на вина страница може да се случи на всяко ниво на привилегия. Това може да се случи, когато изтеглите всички инструкции, включително (но не само): закрие клона, дълги преходи, CALL / RET / INT / IRET, последователна инструкция featches и превключването задача. Изпълнение-малко забраните
- IA32_EFER.NXE = 1.
- инструкция превод поглед настрана буфер (ITLB) се зарежда със страница, която е
все още не са налични в ITLB.