Как отключить DEP в Windows и что это такое

Что такое Data Execution Prevention (DEP) в Windows и как отключить функциюВ некоторых инструкциях, имеющих отношение к решению проблем с работой программ, драйверов или игр вы можете встретить предложение отключить DEP как один из способов исправить ошибки.

В этой инструкции подробно о том, что такое DEP (предотвращение выполнения данных) и способах отключения функции в Windows 11, 10 и предыдущих версиях системы.

Что такое Data Execution Prevention (DEP)

Назначение функции DEP — предотвращение выполнения кода из областей памяти, помеченных как «Только данные» и не предназначенных для исполнения. Задача — блокировка некоторых уязвимостей, которые позволяют вредоносным программам поместить код в область памяти только для чтения, а затем заставить процессор выполнить его.

В случае, если функция Data Execution Prevention (DEP) включена, она блокирует такие попытки и принудительно закрывает соответствующий процесс. В самой программе это часто выглядит как сбой с кодом 0xC0000005, означающим нарушение прав доступа.

В современных системах работа DEP опирается на аппаратную поддержку NX (No Execute, для процессоров AMD) или XD (Execute Disabled, для процессоров Intel) — обе функции предотвращают выполнение кода из областей памяти, которые помечены как неисполняемые, блокирую один из векторов атаки вредоносного ПО.

Узнать текущий статус DEP в Windows 11/10 и других версий ОС можно различными способами. Один из них — выполнение следующей команды в командной строке от имени Администратора (не в PowerShell):

wmic OS Get DataExecutionPrevention_Available, DataExecutionPrevention_SupportPolicy

Вы увидите два столбца. Первый — поддержка DEP, второй — текущий статус в виде числа, соответствующего следующим состояниям:

  • 0 — полностью отключено
  • 1 — включено для всех процессов
  • 2 — включено только для компонентов Windows. Внимание: при этом сами сторонние программы могут запросить DEP и тогда он будет включен и для них.
  • 3 — включено для всех процессов, кроме списка исключений

Также вы можете посмотреть статус DEP для конкретных процессов в диспетчере задач, включив отображение соответствующего столбца «Предотвращение выполнения данных»:

Состояние предотвращения выполнения данных в диспетчере задач

Способы отключить DEP и для чего это может потребоваться

Прежде всего отмечу: без необходимости отключить DEP не следует, это не приведёт к повышению производительности или какой-либо дополнительной пользе.

Однако, в некоторых случаях отдельные программы или игры, особенно старые, могут неправильно работать с DEP. В этом случае можно попробовать исключить конкретный исполняемый файл программы в исключения DEP.

Сделать это можно несколькими способами. Первый вариант:

  1. Нажмите клавиши Win+R на клавиатуре, либо нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить». Введите sysdm.cpl и нажмите Enter.
  2. Перейдите на вкладку «Дополнительно», а затем нажмите кнопку «Параметры» в разделе «Быстродействие».Открыть параметры быстродействия в sysdm.cpl
  3. Перейдите на вкладку «Предотвращение выполнения данных» и либо выберите опцию «Включить DEP только для основных программ и служб Windows» (но учитывайте, что при этом DEP может включаться и для сторонних программ автоматически), либо, при желании — «Включить DEP для всех программ и службы, кроме выбранных ниже», после чего используйте кнопку «Добавить» для добавления тех программ, DEP для которых следует отключить.Отключение DEP для конкретных приложений
  4. Примените настройки и перезагрузите компьютер.

Переопределить состояние DEP можно в окне «Безопасность Windows»:

  1. Откройте «Безопасность Windows», перейдите к разделу «Управление приложениями и браузером», нажмите по ссылке «Параметры защиты от эксплойтов».
  2. Там вы сможете выбрать одну из опций для предотвращения выполнения данных: «Вкл. по умолчанию» или «Выкл. По умолчанию».Параметры DEP в окне Безопасность Windows

Третий способ — редактор реестра:

  1. Нажмите клавиши Win+R на клавиатуре, введите regedit и нажмите Enter.
  2. Перейдите к разделу реестра (если он отсутствует — создайте его)
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
  3. Внутри этого раздела создайте новый строковый параметр и укажите путь к исполняемому файлу программы в качестве имени этого параметра.
  4. Дважды нажмите по созданному параметру и измените его значение на DisableNXShowUI
  5. Закройте редактор реестра и перезагрузите компьютер.

И, наконец, ещё одна возможность — полное отключение DEP в Windows (не рекомендуется, поскольку действие потенциально небезопасно). Запустите командную строку от имени администратора и выполните команду:

bcdedit.exe /set {current} nx AlwaysOff

Полное отключение DEP в командной строке

После чего перезагрузите компьютер. Учитывайте, что после этого изменение состояния DEP другими способами станет недоступным:

Настройки предотвращения выполнения данных недоступны в Windows

Чтобы вернуть состояние по умолчанию, используйте команду:

bcdedit.exe /set {current} nx OptIn

с последующей перезагрузкой компьютера.

Надеюсь, информация была полезной. Однако, напомню: без явной необходимости изменять параметры Data Execution Prevention не следует.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *