На головну

Атрибути захисту сторінок.

  1.  Способи захисту металів від корозії
  2.  O. РЕЖИМ ЗАХИСТУ від пограбування ............................................ ............................... 12
  3.  А. Атрибути, що характеризують буття Бога
  4.  Агресія - психологічна стратегія захисту суб'єктної реальності особистості, що діє на основі інстинкту.
  5.  Адміністративний порядок захисту порушених прав платників податків
  6.  атрибути
  7.  атрибути

Окремі сторінки мають різні атрибути захисту:

1) PAGE_NOACCESS. Спроба читання, записи, виконання в цьому регіоні пам'яті спричиняє спотворення доступу.

2) PAGE_READONLY. Спроба запису, виконання в цьому регіоні пам'яті спричиняє спотворення доступу.

3) PAGE_READWRITE. Спроба виконання в цьому регіоні пам'яті спричиняє спотворення доступу.

4) PAGE_EXECUTE. Спроба читання, записи в цьому регіоні пам'яті спричиняє спотворення доступу.

5) PAGE_EXECUTE_READWRITE. Даний регіон допускає будь-які операції.

6) PAGE_EXECUTE_READ. Спроба запису в цьому регіоні пам'яті спричиняє спотворення доступу.

7) PAGE_WRITECOPY. Спроба виконання в цьому регіоні пам'яті спричиняє спотворення доступу. Запис в пам'ять цього регіону призводить до того, що процесу надається особиста копія даної сторінки фізичної пам'яті.

8) PAGE_EXECUTE_WRITECOPY. Даний регіон допускає будь-які операції.

У Windows 95 використовуються 1,2 і 3 атрибути захисту. Крім розглянутих атрибутів захисту існують два прапори: PAGE_NOCACHE - відключає кешування виділеної сторінки. Використовувати його не рекомендується. В основному використовується цей прапор розробниками драйверів; PAGE_GUARD - спеціальний прапор. Використовується при роботі стека потоку. Windows 95 ці прапори ігнорує. Прапори захисту можна об'єднувати, використовуючи логічну операцію OR. Для зміни атрибутів використовується функція VirtualProtect (...).

 ВАП /////////////////////////////////////////////// ///
 //////////////////////////////////////////////
 Програмний код або дані
 Захисту типу PAGE_WRITECOPY і PAGE_EXECUTECOPY призначені для економного витрачання оперативної пам'яті і місця в сторінковому файлі. У Win32 підтримується механізм, що дозволяє двом або більше процесів отримувати одночасний доступ до єдиного блоку даних. наприклад:

1-я копія Фізична пам'ять 2-я копія


Щоб запобігти одночасну запис в спільний блок даних різними процесами ОС присвоює цього блоку даних атрибут захисту копіювання при записі. Коли потік в одному процесі намагається записати що-небудь в загальний блок даних, то він

1) виділяє з сторінкового файлу сторінку фізичної пам'яті

2) відшукує вільну сторінку в пам'яті

3) копіює сторінку з даними, які потік намагається записати в загальний блок на вільну сторінку пам'яті, отриману на етапі 2

4) зіставляє адресу цієї сторінки віртуальної пам'яті з новою сторінкою в пам'яті.

Після цих дій ОС отримує власну копію цього блоку даних і може робити з нею, що хоче. Windows 95 і Windows 98 не підтримують копіювання рпи записи.

8. Стек потоку під управлінням Windows NT (2000).

ОС сама резервує місце у віртуальному адресному просторі регіон для розміщення стека потоку.

Глобальні змінні зберігаються в спеціальному сегменті, а локальні в стеці.

 програмний сегмент сегмент даних

Розглянемо стек Windows NT, 2000. Під стек за замовчуванням виділяється регіон розміром 1 Мб і передаються дві сторінки фізичної пам'яті. Значення встановлюються за замовчуванням можна змінювати в програмі. Розмір фізичної пам'яті можна змінювати при виконанні функції CreateThread (...). Так виглядає стек при створенні:

080FF000

 Сторінка фізичної пам'яті | PAGE_READWRITEСтраніца фізичної пам'яті c прапором | PAGE_GUARDЗарезервірованная сторінка | | ... Зарезервована сторінка | ... | Програмний код


Покажчик стека встановлюється у верхній частині стека. Фізична пам'ять виділена двом сторінкам.

Друга сторінка має прапор заборони доступу.

У міру створення різних локальних змінних стек розростається, у міру його заповнення відбувається перехід в другу сторінку. Але ця стаття заблокована. ОС буде сповіщена про спробу записи на захищену сторінку і обробляє її наступним чином: знімає прапор заборони запису з другої старніцах. Виділяє стеку третю сторінку фізичної пам'яті і привласнює третій сторінці атрибути PAGE_READWRITE і прапор PAGE_GUARD.

Розглянемо ситуацію, коли стек потоку фактично заповнений.

 //////////////////////////// PAGE_GUARD3арезервірованная страніцаЗарезервірованнаястраніца
 ОС виконує наступне:

Прапор PAGE_GUARD знімається і фізична пам'ять виділяється наступній сторінці.

фізична

пам'ять

Після цього ОС формує виняток, тобто інформує процес про Stack Overflow. В цьому випадку процес повинен зреагувати, якщо цього не відбудеться, то проводиться спроба запису на зарезервовану сторінку, тобто коли це відбувається, то ОС бере керування на себе і завершує не тільки даний потік, а й весь процес. В цьому випадку ОС навіть не сповіщає користування земельними діл-теля. Процес зникає безслідно.

Чому нижня сторінка стека завжди залишається зарезервованої?

1. Для того, щоб захистити стек від перезапису.

 Стек Зарезервована сторінка Дані
 фізична

пам'ять


фізична

пам'ять

2. Для захисту програм і даних при переповненні стека. наприклад,

 стек Паролі
 фізична

пам'ять

Стираємо паролі і отримуємо доступ до мережі.

 




 Еволюція ОС. |  Короткий огляд архітектури Windows. |  Основні системні файли Windows 95, NT, 2000. |  Алгоритм FIFO (перша прибула - перша вивантажено) |  Алгоритм LRU (Least Recently Used - використовувалася найрідше) |  Список вільних блоків |  Видалення купи. |  Файли проектуються в пам'ять (ФПВП). |  Об'єкти kernel32.dll. |  Структура IMTE. |

© um.co.ua - учбові матеріали та реферати