Настройте или отключите DEP (предотвращение выполнения данных) в Windows

Предотвращение выполнения данных(Data Execution Prevention) ( DEP ) — ​​одна из тех «размытых» вещей. В большинстве случаев это благословение, когда он выполняет свою работу и не вмешивается, но проклятие, когда вмешивается. 

Давайте посмотрим на DEP и как его настроить или отключить DEP , в зависимости от ваших потребностей.

Что такое DEP и что он делает?(What Is DEP & What Does It Do?)

Согласно Microsoft, DEP это:

« набор аппаратных и программных технологий, выполняющих дополнительные проверки памяти для предотвращения запуска вредоносного кода в системе. (a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system.)”  

Dell немного упрощает и говорит нам, что DEP

«…может помочь защитить ваш компьютер, отслеживая ваши программы, чтобы убедиться, что они безопасно используют системную память».(“…can help protect your computer by monitoring your programs to make sure that they use system memory safely.”)

Что это значит? В памяти компьютера есть определенные области, которые не предназначены для запуска кода, но иногда код там выполняется. 

Обычно код, который там запускается, является вредоносным. DEP будет следить за этими областями, и если он увидит, что что-то происходит в этих областях, он закроет это. Если вы хотите узнать больше о том, как это работает, прочтите подробное описание предотвращения выполнения данных от Microsoft( Microsoft’s detailed description of Data Execution Prevention) .

Так почему же DEP вызывает проблемы?(So Why Does DEP Cause Problems?)

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

Иногда хорошие программы уходят в области, которые контролирует DEP , и работают в этих областях. 

Когда это происходит, DEP иногда закрывает всю программу и информирует вас об этом с помощью сообщения об ошибке(error message) . Но иногда DEP просто приводит к тому, что программа работает очень плохо, и не будет ничего очевидного, чтобы сказать вам, почему. 

Какие программы имеют проблемы с DEP?(What Programs Have Problems With DEP?)

Программы, конфликтующие с DEP , обычно являются старыми программами или построены на старых кодовых базах. Многие программы для планирования ресурсов предприятия(Enterprise Resource Planning) ( ERP ) построены на кодовых базах, восходящих к 1970-м годам. Тогда DEP(DEP) не было , так что программа пойдет в районы, которые DEP патрулирует.

64-разрядные программы были созданы уже после того, как DEP утвердился, поэтому они разрабатывались с учетом требований. Большинство программ, конфликтующих с DEP , будут 32-разрядными программами(will be 32-bit programs)

Программы сторонних разработчиков, которые интенсивно взаимодействуют со службами (Services)Windows или запускают собственные службы (Services)Windows , могут быть сбиты DEP . В этом случае производитель рекомендует полностью отключить DEP .

Для домашнего пользователя(home user) старые 32-разрядные игры и некоторые эмуляторы для запуска еще более старых игр( emulators for playing even older games) с наибольшей вероятностью будут конфликтовать с DEP .

Старые(Old device) драйверы устройств или драйверы, загруженные из неофициальных источников, также могут вызывать ошибки DEP . Загружайте драйверы только у производителя оборудования или у Microsoft(hardware manufacturer or Microsoft) и регулярно обновляйте драйверы( update your drivers regularly) .

Как узнать, является ли DEP проблемой?(How Do I Know If DEP Is The Problem?)

Возможно, вам придется зайти в средство просмотра событий и просмотреть журналы событий с идентификатором 1000(Event ID 1000) . Если вы найдете его, он может выглядеть так:

Event ID : 1000 - DEP Error : Generic host for Win32 servicesGeneric Host Process for Win32 Services - DEP : Application Error
Event Type: Error
Event Source: Application Error
Event Category: (100)
Event ID: 1000

 Вы можете увидеть другие ошибки, ссылающиеся на такие вещи, как:

  • 0xFC:ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY — возникает, когда драйвер устройства(device driver) пытается запуститься в памяти. Это может быть плохой или устаревший драйвер. Вы захотите обновить драйверы. 
  • STATUS_ACCESS_VIOLATION (0xc0000005) — возникает, когда программы пытаются запуститься в защищенном DEP пространстве памяти(memory space) .

Как настроить или отключить DEP(How To Configure Or Turn Off DEP)

В Windows 10 для DEP по умолчанию используется параметр Включить DEP только для основных программ и служб Windows(Turn on DEP for essential Windows programs and services only) . В большинстве случаев этого достаточно. Это означает, что большинство ваших программ будут игнорироваться DEP

Но если DEP помогает защитить компьютер и не влияет на производительность(performance hit) , вы можете выбрать Включить DEP для всех программ, кроме выбранных мной(Turn on DEP for all programs except those that I select) . Затем, если вы найдете программу, у которой есть проблема с DEP , мы можем добавить ее в качестве исключения. Давайте посмотрим, как это сделать.

  • Откройте панель управления,(Control Panel ) затем откройте « Система»(System) .

  • В левой части окна « Система(System ) » нажмите « Дополнительные параметры системы»(Advanced System Settings) .

  • Должно открыться окно «Свойства системы»(System Properties ) , в котором уже должна быть установлена ​​вкладка « Дополнительно ». (Advanced)В области « Производительность(Performance ) » нажмите « Настройки(Settings) » .

  • В окне « Параметры производительности(Performance Options ) » щелкните вкладку « Предотвращение выполнения данных(Data Execution Prevention ) ».

  • Выбрав « Включить DEP для всех программ, кроме тех, которые я(Turn on DEP for all programs except those that I select) выбрал», нажмите кнопку « Добавить(Add ) » в нижней части окна.

  • Перейдите к исполняемому файлу программы, которую мы хотели бы добавить в качестве исключения. Скорее всего, он будет в C:/Program Files (x86)
  • В этом примере мы добавляем MediaMonkey , старую утилиту музыкального проигрывателя(music player utility) . Нажмите(Click) на файл .exe , как только мы его найдем, и нажмите « Открыть(Open) » .

  • В параметрах производительности нажмите « Применить(Apply) » . Теперь MediaMonkey будет работать вне защиты DEP(DEP protection) , в то время как все остальные будут работать под защитой DEP(DEP protection) .

Полностью отключить DEP(Turn DEP Completely Off)

Если вы хотите полностью отключить DEP , мы рекомендуем делать это только в рамках устранения неполадок. DEP для вашей защиты. 

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

  • Откройте командное(Command ) окно от имени администратора(Administrator) . Сделайте это, набрав cmd в поле поиска программы(program search field) рядом с меню « Пуск(Start) » .

  • Введите команду bcdedit.exe /set {current} nx AlwaysOff и нажмите клавишу ввода.

bcdedit.exe — это утилита Windows для редактирования данных конфигурации загрузки(c) , следовательно (d), (bdcedit)bdcedit(b) .

/set указывает bcedit установить значение параметра(option value entry) в конфигурации загрузки(boot configuration) .

{current} указывает becedit работать с конфигурацией загрузки(boot configuration) , используемой прямо сейчас.

nx является сокращением от no (x)execute(n) и является именем параметра(setting name) DEP в(DEP) конфигурации загрузки(boot configuration) .

AlwaysOff не требует пояснений.

  • Перезагрузите компьютер.
  • DEP теперь будет полностью и навсегда отключен.

Включите DEP для всего(Turn DEP On For Everything)

Чтобы включить DEP абсолютно для всего, процесс и команда(process and command) аналогичны приведенным выше.

  • Откройте командное(Command ) окно от имени администратора(Administrator) , следуя инструкциям, описанным выше.
  • Введите команду bcdedit.exe /set {current} nx AlwaysOn

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

После того, как DEP всегда включен или всегда выключен, его НЕЛЬЗЯ(NOT) изменить на вкладке «Предотвращение выполнения данных»(Data Execution Prevention tab) в системных настройках. 

Давайте посмотрим, как изменить его, чтобы снова можно было использовать переключатели на вкладке DEP .(DEP tab)

Вернуть DEP к поведению по умолчанию(Set DEP Back To Default Behavior)

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

  • Откройте командное(Command ) окно от имени администратора(Administrator) .
  • Введите команду bcdedit.exe /set {current} nx OptIn .

  • Перезагрузите компьютер.
  • Теперь переключатели на вкладке DEP(DEP tab) в системных настройках снова доступны.

В ДЭП или не в ДЭП(To DEP Or Not To DEP)

Мы рекомендуем оставить для DEP значение по умолчанию (default setting)Включить DEP только для основных программ и служб Windows, за(Turn on DEP for essential Windows programs and services only, ) исключением случаев, когда необходимо изменить его для устранения неполадок, которые могут быть связаны с DEP(DEP-related) .



About the author

«Я внештатный эксперт по Windows и Office. У меня более 10 лет опыта работы с этими инструментами, и я могу помочь вам извлечь из них максимальную пользу. Мои навыки включают в себя: работу с Microsoft Word, Excel, PowerPoint и Outlook; страницы и приложения, а также помощь клиентам в достижении их бизнес-целей».



Related posts