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