Исключения dep. Включение и отключение DEP в Windows

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

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


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

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

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


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

Что такое предотвращение выполнения данных

Предотвращение выполнения данных (DEP) – это средство защиты компьютера от вирусов и других угроз безопасности. DEP проверяет программы, контролируя безопасность использования ими системной памяти.

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

Безопасно ли запускать программу, закрытую функцией DEP

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

Почему DEP продолжает закрывать программу

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

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

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

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

Что делать, если функция DEP закрывает службу Windows

Программы svchost.exe и explorer.exe являются частями операционной системы Windows. Если DEP закрывает их или другие службы Windows, это может быть вызвано меньшими программами, например, расширениями, которые создаются другими издателями программного обеспечения функционируют внутри Windows .

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

Работает ли DEP без аппаратного предотвращения выполнения данных

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

В таких процессорах для предотвращения выполнения программами кодов в защищенных участках памяти используется аппаратная технология. Если процессор не поддерживает аппаратное предотвращение выполнения данных, 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.

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

Информация
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. Нажмите кнопку "Применить ";

Инструкция

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

Для полного отключения DEP в Windows XP необходимо отредактировать файл boot.ini, находящийся в коневой части загрузочного диска. Отредактировать его можно двумя способами. Первый: включите отображение системных файлов, для этого откройте свойства любой папки – «Сервис» - «Свойства папки» - «Вид». Активируйте радиокнопку «Показывать скрытые файлы и папки», потом найдите строку «Скрывать защищенные системные файлы», снимите с нее флажок и нажмите кнопку ОК.

Откройте файл boot.ini, найдите параметр noexecute и измените его на noexecute=AlwaysOff. Сохраните изменения и перезагрузите компьютер. Теперь функция DEP всегда .

Во втором варианте вы можете изменить файл boot.ini через функцию редактирования параметров загрузки и восстановления. Откройте «Панель управления», выберите из списка строку «Система», потом пункт «Дополнительно». В разделе «Загрузка и восстановление» найдите и нажмите кнопку «Параметры». Далее в новом окне нажмите кнопку «Правка». Отредактируйте файл boot.ini и сохраните изменения.

Если вы пользуетесь операционной системой Windows 7, отключение DEP можно выполнить следующим способом. Сначала запустите командную строку (консоль), для этого нажмите кнопку «Пуск» и в поле поиска введите команду cmd, потом кликните правой кнопкой мышки и запустите программу от имени администратора. Далее в открывшемся окне консоли введите: bcdedit.exe /set {current} nx AlwaysOff, проверьте правильность команды и нажмите Enter. Перезагрузите компьютер. Функция DEP будет отключена для всей системы.

Видео по теме

Источники:

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

DEP как Data Execution Prevention, или предотвращение выполнения данных. Данная функция встроена во все современные операционные системы, включая и Windows. Ее задачей является блокировка попыток выполнить код, находящийся в области памяти, предназначенной только для данных. Логика такого запрета проста и понятна: данные – это не исполняемый код, а информация. Если область памяти имеет пометку «только для данных», то в ней не может быть исполняемого кода. И когда вдруг в этой области памяти некий процесс пытается запустить код, это уже явный признак нештатной ситуации.

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

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

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

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

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