Как отключить 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 в командной строке

Вы увидите два столбца. Первый — поддержка 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Отключаем DEP в редакторе реестра
  5. Закройте редактор реестра и перезагрузите компьютер.

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

bcdedit.exe /set {current} nx AlwaysOff
Полное отключение DEP в командной строке

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

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

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

bcdedit.exe /set {current} nx OptIn

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

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

Комментарии (28) к Как отключить DEP в Windows и что это такое

  • лилия

    ребята вы такие молодцы. Я давно вас ждала и теперь никогда не растанусь

    Ответить

    • Dmitry

      Интересно, что вы имеете в виду? Что-то мне кажется, тема про отключение DEP — не та, ради которой долго ждут : )

      Ответить

  • Безликий

    Всегда отключаю. А толку с этой штуки? USER.WIN32 всё равно в состоянии превзойти любую защиту

    Ответить

  • Маргарита Евгеньевна

    Чудесно! Всегда вас искала, а нашла только сейчас и надеюсь, что никогда не потеряю. Только, пожалуйста, обновите инструкцию для Windows 10. Данная инструкция не подходит

    Ответить

    • Dmitry

      Прямо именно меня? Лестно. А вы уверены, что не работает? По крайней мере, мельком взглянул, в быстродействии системы для конкретных программ точно отключается. Остальное пока не проверял.

      Ответить

      • Маргарита Евгеньевна

        И вас в том числе:)
        Дмитрий, у меня почему-то нет Layers папки в ветке реестра точно по указанному пути. В командной строке также не проходит. Windows 10 последний билд.

        Ответить

        • Dmitry

          Странно, а у меня Layers есть, финальная 10, 10240. А вы не стесняйтесь — создайте этот подраздел.

          Ответить

          • Маргарита Евгеньевна

            Спасибо, всё получилось!

            Ответить

          • Маргарита Евгеньевна

            Дмитрий, кстати, по-возможности, сделайте, пожалуйста, инструкции о корректном удалении приложений Windows из папки SystemAps, например Cortana и тд. Сейчас раздражает процесс searchUI.exe от Cortana, так понимаю, штатными средствами это не удалить
            Спасибо!

            Ответить

          • Dmitry

            Как-нибудь доберусь. Но, думаю, не очень скоро. Вообще, вопросов много на очереди.

            Ответить

          • Максат

            searchUI.exe в десятке меня тоже раздражает. В режиме ожидания жесткий диск начинает нервно рычать из за 10% процесса от searchUI.exe
            Хотя, только что переименовал его расширение с .exe на .1exe с помошью Unlocker-а

            Ответить

  • Dimon613648

    как отключить DEP на 10. все что я прописывал в строке командной пишет ошибка

    Ответить

    • Dmitry

      Отключив предварительно Secure Boot в UEFI/БИОС (ну и естественно, командная строка от администратора)

      bcdedit.exe /set {current} nx AlwaysOff

      Ответить

      • Виктор

        Эта команда тоже запрещена политикой и не может быть изменена. Что делать?

        Ответить

  • Наталья

    Здравствуйте! А такая ошибка (ссылка на скриншот) тоже имеет отношение к DEP? Спасибо.

    Ответить

  • хочузнать

    Dmitry, как я понял этот DEP отвечает за установку программ? всех скаченных программ или программ скаченных из одного источника? спасибо.

    Ответить

    • Dmitry

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

      Ответить

  • Алексей

    Дмитрий, доброго времени суток.
    Такой вопросик — пытаюсь отключить DEP вашим первым указанным с статье способом, но мне пишет «Эта программа должна выполняться с включенной функцией предотвращения выполнения данных (DEP). Вы
    не можете отключить DEP для этой программы.» Тогда я пробую применить второй способ — через реестр. Но результата нет. Всё равно у меня каждый раз при запуске винды вылезает табличка: «Lenovo.Modern.ImController.PluginHost.SettingsApp.exe — Ошибка.
    Инструкция по адресу 0x00007FFEAED3570C обратилась к
    памяти по адресу 0х0000000000000000. Память не может
    быть read.»
    Помогите пожалуйста, если знаете действенный способ убрать эту табличку при запуске, буду очень вам признателен.

    Ответить

  • Николай

    windows 1803 OC 17134.407
    Отключил DEP через cmd (bcdedit.exe /set {current} nx AlwaysOff), а после включения (bcdedit.exe /set {current} nx AlwaysOn) в Свойствах системы — Параметры быстродействия — DEP блокирован: Чтобы использовать эти параметры, необходимо иметь права администратора компьютера и использовать файл bcdedit.exe. Дополнительные сведения можно найти на веб-сайте базы
    Вопрос. Как вернуть управление через Свойства системы — Параметры быстродействия — DEP

    при наборе cmd «bcdedit.exe», пишет что DEP работает (строка Nx, я так понимаю?):
    Загрузка Windows
    nx AlwaysOn

    Ответить

    • Сергей

      Нужно прописать не AlwaysOn, а OptIn. Получится: bcdedit.exe /set {current} nx OptIn
      Тогда выбор будет доступен.

      Ответить

  • Костя

    Кстати, при желании, с помощью bcdedit вы можете создать в меню загрузки и выбора системы отдельную запись с отключенным DEP и использовать ее тогда, когда это требуется.
    А как сделать так как написал?

    Ответить

  • ThIsLinked

    Димдимыч, подскажите. Что делает команда?

    bcdedit.exe /set {current} nx OptIn

    Ответить

    • Dmitry

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

      Ответить

  • f,kdskcs

    А что делать если пишет «Для этого файла необходим включённый Dep» я хотел для отдельной проги выключить его.

    Ответить

  • Евгений

    Приветствую.
    При выполнении команды для проверки текущего статуса DEP в командной строке от имени администратора, я получаю следующий ответ: «wmic» не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    Windows 11 25H2. В чем может быть дело?

    Ответить

    • Dmitry

      Здравствуйте.
      Обычно wmic установлен по умолчанию, но если нет, то:
      Параметры — Система — Дополнительные компоненты — Просмотреть компоненты, отмечаем и устанавливаем WMIC

      Ответить

Оставить комментарий

Интересное
Новое
Список инструкций Windows 11 Windows 10 Подписаться