Як відключити DEP


Починаючи з WIndows XP в операційних системах Microsoft є підтримка апаратного захисту стандартів ExecuteDisabled (Intel) і NoExecute (AMD). У Microsoft підтримку цих апаратних інструкцій узагальнено назвали DEP (по-російськи - "Запобігання Виконання Даних). Призначення функції в тому, щоб програмний код, зчитаний з деяких областей оперативної пам'яті, не зміг стати виконуваним. Говорячи зрозумілою мовою, так блокується один із шляхів зараження комп'ютера вірусами. Функція безумовно корисна, але деякі програмісти при написанні своїх "шедеврів" не враховують особливості поведінки програми при включенні такого захисту. У результаті простий користувач отримує повідомлення про помилку "Пам'ять не може бути read/write". Якщо ви зіткнулися з подібною проблемою і точно впевнені що програма не є шкідливою, можете спробувати відключити захист DEP. Це дещо послабить захищеність, але ймовірно дозволити використовувати програму. Як вимкнути апаратне запобігання виконання даних я опишу нижче в цій замітці.

Якщо програм, які конфліктують з DEP, у вас одна або кілька, рекомендується відключити захист тільки для них, не впливаючи на поведінку системи в цілому. Для цього зробіть наступне:

  • Натисніть "Пуск", натисніть на пункт "Система" в Панелі керування
  • Натисніть на посилання "Додаткові параметри системи" в лівій частині екрану
  • Перейдіть на вкладку "Додатково" та натисніть на кнопку "Параметри"
  • Перейдіть на вкладку "Запобігання виконання даних", встановіть "радіокнопку" на пункт "Включити DEP для всіх програм і служб, крім обраних нижче і натисніть "Додати"
  • Відкриється вікно диспетчера файлів. Виберіть виконуваний файл потрібної програми і натисніть "Відкрити"
  • З'явиться повідомлення, що повідомляє про зростаючі ризики. Якщо ви готові відключити DEP для програми, натисніть "ОК"
  • Перед вами з'явиться список всіх програм з відключеною функцією DEP. Натисніть "ОК", закрийте всі вікна Панелі управління
  • Зауважу, що вибіркове відключення DEP можливо тільки для 32-розрядних програм. При спробі додати в "білий список" 64-бітове додаток ви отримаєте повідомлення про помилку. Якщо вам неодмінно потрібно запускати 64-бітну програму в обхід DEP, єдиний вихід - відключити захист повністю, для всіх додатків в системі. Як це зробити буде розказано трохи пізніше.

    Відключення DEP через реєстр

    Другий спосіб відключення захисту DEP для окремої програми полягає в редагуванні реєстру. Необхідні для цього дії такі:

  • Натисніть одночасно кнопки WIN R, в пошуковому полі введіть "regedit", натисніть "ОК"
  • Запуститься Редактор реєстру. Знайдіть гілку HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows NT > CurrentVersion > AppCompatFlags. Зробіть на ньому правий клік миші, виберіть "Створити > Розділ"
  • Назвіть розділ "Layers"
  • Далі дії будуть повторюватися для кожної програми, для якої необхідно відключити захист DEP. В лівій половині вікна виберіть тільки що створений розділ Layers, в правій половині клацніть правою кнопкою мишки і створіть строковий параметр
  • Назвіть його саме так, як називається виконуваний файл програми без розширення (наприклад, для Internet Explorer це iexplore)
  • Клікніть по створеному параметру двічі. У полі Значення введіть шлях до зазначеного файлу (вже повністю, включаючи розширення) та натисніть "ОК"
  • Ці дії потрібно повторити для кожної програми, якій потрібні виключення безпеки. Коли завершите процес зміни реєстру, перезавантажте комп'ютер.

  • Якщо програм, несумісних з системою запобігання виконання коду, у вас багато чи серед них є хоча б одна 64-розрядна, доведеться відключати DEP повністю. Інструкція така:

  • Натисніть кнопку Пуск, у полі введіть cmd. Зробіть на що з'явилася іконці командного інтерпретатора правий клік і запустіть його з правами адміністратора
  • У вікно, що відкрилося, введіть текст без лапок bcdedit.exe /set current nx AlwaysOff і натисніть enter
  • Якщо попередня операція була успішною, все що вам залишиться зробити для вступу змін в силу - перезавантажити комп'ютер.

  • Варто відзначити, що команда для включення DEP назад - "bcdedit.exe /set current nx AlwaysOn". Відключаючи захист, особливо для всіх програм, встановіть хоча б надійний антивірус з регулярно оновлюючими сигнатурними базами і грамотно налаштуйте міжмережевий екран.