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

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

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

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

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

Компании Advanced Micro Devices (AMD) и Intel поставляют совместимые с Windows процессоры, поддерживающие функцию DEP.

Начиная с пакета обновления 2 (SP2) для Windows XP 32-разрядная версия Windows использует один из следующих методов.

  • Функцию no-execute page-protection (NX), разработанную компанией AMD.
  • Функцию Execute Disable Bit (XD), разработанную компанией Intel.

Чтобы использовать указанные функции, необходимо, чтобы процессор работал в режиме расширения физических адресов (Physical Address Extension, PAE). Windows автоматически включает режим PAE для поддержки функции DEP, поэтому пользователям не нужно отдельно включать PAE.

Physical Address Extension (PAE) - режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти.

64-разрядные версии Windows также поддерживают функцию NX, но режим работы с оперативной памятью РАЕ для них не обязателен. Кроме того, для 64-разрядных компьютеров возможны разные конфигурации памяти.

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

1. Откройте меню Пуск и выберите Панель управления.

Меню Пуск — Панель управления

5. Откройте вкладку Предотвращение выполнения данных. Внизу вы найдете информацию о поддержке DEP.

Во вкладке Предотвращение выполнения данных можно настроить работу DEP с помощью следующих параметров.

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

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

Щелкните на кнопке Добавить… и выберите программы, для которых вы хотите отключить предотвращение выполнения.

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

Как убедиться, что аппаратная функция DEP работает в Windows

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

Способ 1. Используйте средство командной строки Wmic

С помощью средства командной строки Wmic можно проверить параметры DEP. Чтобы определить, доступна ли аппаратная функция DEP, выполните следующие действия:

wmic OS Get DataExecutionPrevention_Available

Если в результате будет получено значение TRUE, аппаратная функция DEP включена.

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

Параметр no-execute page-protection (NX) включает аппаратный DEP на платах с чипсетом от AMD, а параметр Execute Disable Bit (XD) - на платах с чипсетами от Intel.

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

1. В меню Пуск меню Пуск введите в поле Поиска команду cmd и нажмите кнопку ВВОД.

2. В командной строке введите следующую команду и нажмите клавишу ВВОД:

wmic OS Get DataExecutionPrevention_SupportPolicy

В результате выполнения команды будет возвращено значение 0, 1, 2 или 3.

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

2 — OptIn (конфигурация по умолчанию) — Функция DEP включена только для системных компонентов и служб Windows

3 – OptOut — Функция DEP включена для всех процессов. Администратор может вручную создать список приложений, для которых функция DEP отключена

1 – AlwaysOn — Функция DEP включена для всех процессов

0 – AlwaysOff — Функция DEP отключена для всех процессов

Преимущества DEP

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

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

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

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

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

Как отключить DEP в системе Windows Xp/7/8

Для того чтобы отключить DEP в XP необходимо через учетную запись администратора перейти в Пуск-Настройки, затем в Панели управления найти раздел «Система».

В появившемся окне нужно сделать активной вкладку Дополнительно, в которой перейти по кнопке «Параметры быстродействия».

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

Для 7 и 8 версий Windows самый простой и оперативный способ отключить DEP – через командную строку. Чтобы получить быстрый доступ к командной строке достаточно набрать «cmd» в строке поиска меню «Пуск». Cmd необходимо запускать только от имени администратора (клик по cmd правой кнопкой и выбор соответствующего пункта), при необходимости введите запрашиваемый пароль.

В открывшемся черном окне введите специальную команду:

bcdedit.exe /set {current} nx AlwaysOff.

В результате появится сообщение об успешном завершении операции. Остается только перезагрузить систему.

Как включить dep в Windows Xp/7/8

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

В случае с 7 и 8 Windows команда, вводимая в cmd, меняется на:

bcdedit.exe /set {current} nx AlwaysOn.

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

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

Инструкция

Отключение 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 windows xp

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

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

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

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

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

Пользователь имеет возможность изменить настройки DEP. Для этого необходимо открыть «Панель управления», выбрать вкладку «Система», потом «Свойства системы» - «Дополнительно» - «Быстродействие» - «Параметры». В окошке «Параметры быстродействия» найдите вкладку «Предотвращение выполнения данных». У вас есть возможность включить 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 7, 8, 10. При этом, система, опираясь на аппаратную составляющую устройства, производит блокировку исполняемого кода в тех областях, которые помечены, как неисполняемые. Фактически, производится блокировка возможности атаки вирусного ПО с этой стороны.

Однако, данная опция может блокировать и вполне «мирные» приложения и игры, при их запуске могут выдавать ошибки, вроде «Инструкция обратилась к памяти по адресу. Память не может быть read или written». Отключить dep можно для всей системы или же для одного конкретного приложения.

Отключение DEP для всей системы

Для начала, пользователю потребуется запустить командную строку от имени администратора, сделать это можно через меню пуск, найдя соответствующее приложения, щелкнув по нему ПКМ и нажав на нужный пункт меню. В консоли нужно ввести оператор bcdedit.exe /set {current} nx AlwaysOff и выполнить его.

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

Отключение для определенной программы

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

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

Используем редактор реестра

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

После того, как предварительные меры будут приняты, можно приступать к действиям. Для начала нужно нажать на win+ r и написать в появившемся окне regedit . После этого откроется приложение для редактирования реестра, в нем следует пройти по пути. Теперь будет нужно щелкнуть по пустому месту в правой части окна правой кнопкой мыши и выбрать Создать во всплывшем меню, потом нужно кликнуть по строковому параметру. Новая переменная должна содержать в качестве имени полный путь к программе, для которой нужно отключить dep.

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

Включение DEP

Для включения опции придется вспомнить то, каким образом она была отключена. Если выключение производилось для всей системы, то опция, в которую можно попасть через панель управления, будет просто недоступна.

Так что в этом случае потребуется снова вызвать командную строку с правами администратора и ввести там оператор bcdedit.exe /set {current} nx AlwaysO n . Далее потребуется перезагрузка устройства, после чего, функция снова станет работоспособной и ее можно станет отключать только для некоторых приложений.

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

Если отключение производилось через реестр, то нужно снова зайти в него, пройти по пути HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers и удалить там те параметры, которые отвечают за нужные приложения, либо удалить все.

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