Включение и отключение DEP в Windows. Что такое DEP

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

Основным преимуществом функции DEP является возможность предотвращения запуска вредоносного кода из области данных. При аппаратной реализации функция DEP вызывает исключение при запуске кода из указанных местоположений. Функция DEP, реализованная на программном уровне, предотвращает использование вредоносными программами механизма обработки исключений, существующего в Windows.

Изменение параметров функции DEP в Windows XP.
1. Нажмите кнопку "Пуск" и выберите пункт "Выполнить " или нажмите на клавиатуре комбинацию клавиш Win + R ;

2. В поле "Открыть" напишите команду sysdm.cpl и нажмите кнопку "ОК";
3. В окне "Свойства системы", перейдите на вкладку "Дополнительно ";
4. Затем в графе "Быстродействие ", нажмите кнопку "Параметры ";
5. В окне "Параметры быстродействия", перейдите на вкладку "Предотвращение выполнение данных ";
6. Выберите необходимый режим работы функции DEP;

7. Нажмите кнопку "Применить ";

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

Как включить функцию DEP только для служб Windows:
1. Необходимо на вкладке "Предотвращение выполнение данных", выбрать пункт "Включить DEP только для основных программ и служб Windows ";
2. Нажмите кнопку "Применить ";

Как включить функцию DEP для всех программ установленных на компьютере:
1. Необходимо на вкладке "Предотвращение выполнение данных", выбрать пункт "Включить DEP для всех программ и служб, кроме выбранных ниже ";
2. Нажмите кнопку "Применить ";

Как отключить функцию DEP для конкретной программы:
1. Необходимо на вкладке "Предотвращение выполнение данных", выбрать режим "Включить DEP для всех программ и служб, кроме выбранных ниже ";
2. Нажмите кнопку "Добавить ";
3. Затем используя открывшееся окно "Открыть", необходимо найти исполняемый файл программы;

4. Щелкнуть левой кнопкой мыши по исполняемому файлу программы и нажать кнопку "Открыть ";
5. Убедитесь что рядом с названием программы, установлен флажок (галочка);
6. Нажмите кнопку "Применить ";

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

Как полностью отключить DEP

Итак, сразу к делу. Нажимаем кнопку «Пуск» и в строке поиска пишем «cmd». В результатах поиска в самом верху находим cmd — это нужно для . Чтобы запустить её с правами Администратора кликаем по команде правой кнопкой и выбираем из контекстного меню «Запуск от имени администратора».

Соответственно, если на данный момент вы залогинены в Windows как обычный пользователь, то система попросит ввести пароль администратора. Теперь, в появившееся чёрное окошко вставляем команду и жмём «Enter»:

bcdedit.exe /set {current} nx AlwaysOff

Результатом должно быть сообщение: «Операция успешно завершена»

Далее нужно перезагрузиться чтобы изменения вступили в силу. Таким образом мы отключили DEP для ВСЕХ служб и программ, в независимости от того, поддерживается ли предотвращение выполнения данных вашим процессором на аппаратном уровне или нет.

Как выключить функцию DEP для отдельной программы

Для этого идём в «Панель управления -> Система» или же нажимаем правой кнопкой по значку «Мой компьютер» на рабочем столе и выбираем «Свойства». Слева в окне кликаем на «Дополнительные параметры системы»

В разделе «Быстродействие» жмём на кнопку «Параметры»

Нам нужна вкладка «Предотвращение выполнения данных». Здесь в принципе всё и так понятно:

По умолчанию DEP работает только для основных программ и служб. Переставляя переключатель в положение «Включить DEP для всех программ и служб, кроме выбранных ниже» мы можем сами определить для каких программ нужно отключать функцию DEP. Для этого просто выберите программу из списка или нажмите «Добавить» и вручную выберите запускаемый (.exe) файл.

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

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

Как обратно включить DEP

Чтобы вернуть DEP назад запустите ещё раз командную строку «cmd» от имени администратора, только на этот раз вставьте такую команду:

bcdedit.exe /set {current} nx OptIn

и перезагрузитесь.

Что вообще такое DEP

Теперь небольшое отступление что же это за функция такая и с чем её едят. Data Execution Prevention призвано защитить систему от некоторых вирусов и угроз безопасности системы. Но, ни в коем случае не стоит путать это с антивирусом или брандмауэром! Это абсолютно разные вещи.

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

Бывает как аппаратная реализация DEP (с помощью команд процессора), так и программная (с помощью специального программного кода Windows). Аппаратная реализация надёжнее и все современные процессоры её поддерживают. Так что, если никаких проблем нет, то лучше ничего в настройках не менять. Но, к сожалению, функция DEP может мешать работе и нормальных программ, поэтому иногда её отключают. Как это сделать — статья вам в помощь!

Любители покопаться в настройках операционной системы Виндовс наверняка встречали упоминание о DEP. Это английская аббревиатура, образованная от слов Data Execution Prevention, что в русской транскрипции означает функцию предотвращения выполнения данных. К примеру, эти настройки в «Семерке» можно легко найти, если проследовать по пути: «Мой компьютер» - открываем «Свойства» - идем в «Дополнительные параметры» - теперь «Дополнительно» и «Параметры». Нужная вкладка одна - предотвращение выполнения данных. Здесь пользователю предоставляется возможность выбора режима работы функции: задействовать для некоторых системных служб и программ или для всех, кроме указанного исключения. Правда, отключение dep отсюда выполнить не получится, но об этом чуть позже.

Функция DEP является интегрированным в Виндовс (начиная с XP со вторым сервис-паком) программным решением, позволяющим предотвращать выполнение программного кода из области данных (куча, стек). Механизм работы с памятью предполагает, что существует несколько областей, в которых не должны находиться исполняемые участки кода. Несмотря на это, как в Линукс с ядром до 2.3.23, так и в Виндовс до SP2, никакого контроля за размещением программных данных в системной памяти не выполнялось. Разумеется, за исключением защиты непосредственно самого ядра. Данной уязвимостью просто не могли не воспользоваться создатели вредоносных программ (вирусов), в результате чего стали активно шириться различные черви и эксплоиты, через root получавшие права доступа. Кроме того, многие вирусы вызывали переполнение буфера и фактическое

Для предотвращения этого был реализован механизм защиты. На тот момент никто даже не думал, как отключить dep, ведь это казалось благом. Разработчики процессоров быстро сориентировались и включили аппаратную поддержку данной функции - это XD бит у Pentium 4 шестой серии и NX бит у Athlon 64. Интересно, что благодаря правильному маркетингу наличие такой поддержки стоило покупателю дополнительных денег. В настоящее время процессоров без XD (NX) не существует, как, впрочем, и Особенно примечательно, что даже в Android 4.1 появилась поддержка dep. Более подробно ознакомиться с особенностями работы этой функции можно в глобальной Сети.

Если все так хорошо, то почему иногда задается вопрос «как отключить dep»? Ответ прост - некоторые программы написаны без учета особенностей работы менеджера системной памяти. До «эры» DEP это не имело принципиального значения, так как пользователю нужно, чтобы запускаемое им приложение работало, а как оно там взаимодействует с системой - дело десятое. Конечно, речь идет о нормальных программах, а не вирусах.

С появлением же DEP Windows стала запрещать исполнение кода некорректно написанных программ. Это вполне понятно, ведь система не знает, чем именно вызвано странное поведение - вирусом или легальной программой. Выход один - разобраться, как отключить dep. Кстати, в свое время упорно ходили слухи, что выключение данной функции позволяет повысить Некоторые пользователи утверждали, что так как на проверку состояния страниц памяти и операционная система расходуют часть своих ресурсов, то, зная, как отключить dep, можно увеличить производительность системы. Основа такого предположения верна, но ускорение работы находится в рамках погрешности, поэтому им можно пренебречь.

Все же, если из-за DEP наблюдаются проблемы с запуском какой-либо программы, функция может быть отключена. В «Семерке» для этого необходимо выполнить следующее:

Нажимаем комбинацию Win+R;

В появившейся строке набираем «bcdedit.exe /set {current} nx AlwaysOff» (без кавычек) и нажимаем Enter.

Важно: пользователь должен работать в системе с правами администратора. Вот так все просто. После данной операции функция будет запрещена для всех приложений и служб.

Начиная с WIndows XP в операционных системах Microsoft присутствует поддержка аппаратной защиты стандартов ExecuteDisabled (Intel) и NoExecute (AMD). В Microsoft поддержку этих аппаратных инструкций обобщенно назвали DEP (по-русски — «Предотвращение Выполнения Данных). Предназначение функции в том, чтобы программный код, считанный из некоторых областей оперативной памяти, не смог стать исполняемым. Говоря понятным языком, так блокируется один из путей заражения компьютера вирусами. Функция безусловно полезная, но некоторые программисты при написании своих «шедевров» не учитывают особенности поведения программы при включении подобной защиты. В результате простой пользователь получает ошибку «Память не может быть read/write». Если вы столкнулись с подобной проблемой и точно уверены что программа не является вредоносной, можете попробовать отключить защиту DEP. Это несколько ослабит защищенность, но вероятно позволить использовать программу. Как отключить аппаратное предотвращение выполнения данных я опишу ниже в этой заметке.

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


Замечу, что выборочное отключение DEP возможно только для 32-разрядных программ. При попытке добавить в «белый список» 64-битное приложение вы получите сообщение об ошибке.
Если вам непременно нужно запускать 64-битную программу в обход DEP, единственный выход — отключить защиту полностью, для всех приложений в системе. Как это сделать будет рассказано чуть позже.

Отключение DEP через реестр

Второй способ отключения защиты DEP для отдельной программы заключается в редактировании реестра. Необходимые для этого действия таковы:


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

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

Аппаратная реализация DEP

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

Программная реализация DEP

Программно функция предотвращения выполнения данных реализована во всех основных десктопных операционных системах (Windows, Linux, macOS), доступна она также в Android. В системах Windows DEP появилась в Windows XP SP 2 и Windows Server 2003 SP 1. Начиная с Windows Vista эта функция является встроенной в систему.

В Windows 7 при срабатывании DEP можно увидеть следующее сообщение: Для обеспечения защиты вашего компьютера служба предотвращения выполнения данных закрыла [имя программы] . По умолчанию эта функция включена только для основных программ и служб операционной системы, но её можно распространить и на все программы и службы. Отключить DEP в Windows полностью через графический интерфейс не представляется возможным, но это можно сделать путем редактирования загрузчика Windows.

Чтобы попасть в настройки DEP в Windows 7 откройте свойства системы (Пуск Панель управления Система ). Далее откройте Дополнительные параметры системы , там найдите пункт Быстродействие и нажмите Параметры .

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

Отключение функции DEP в Windows

Если Вы хотите совсем отключить DEP в Windows, придется редактировать загрузчик ОС. В современных версиях Windows делается это через утилиту bcdedit .

Запустите командную строку с правами администратора и вбейте следующий текст:

bcdedit.exe /set {current} nx AlwaysOff

После этого нужно перезагрузить компьютер.

Обратно включить функцию DEP можно командой

bcdedit.exe /set {current} nx OptIn

После этого нужно также перезагрузить ПК.

Статьи по теме: