Как отключить DEP в Windows


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

Защита от выполнения данных (DEP) — это функция защиты памяти на уровне системы, встроенная в операционную систему, начиная с Windows XP и Windows Server 2003. DEP позволяет системе пометить одну или несколько страниц памяти как не исполняемые. Пометка областей памяти как неисполнимых означает, что код не может выполняться из этой области памяти, что усложняет использование буфера переполнения.

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

DEP не предназначен для комплексной защиты от всех эксплойтов; он предназначен для защиты приложения другим инструментом.

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

Если приложение пытается выполнить код с защищенной страницы, приложение получает исключение с кодом состояния STATUS_ACCESS_VIOLATION. Если приложение должно выполнять код со страницы памяти, оно должно выделить и задать соответствующие атрибуты защиты виртуальной памяти . Выделенная память должна быть помечена PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE или PAGE_EXECUTE_WRITECOPY при выделении памяти. Выделения кучи, выполняемые путем вызова функций malloc и HeapAlloc , являются неисполнимыми.

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

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

Замечания по программированию

Приложение может использовать функцию VirtualAlloc для выделения исполняемой памяти с соответствующими параметрами защиты памяти. Предполагается, что набор приложений, как минимум, PAGE_EXECUTE параметр защиты памяти. После создания исполняемого кода рекомендуется настроить защиту памяти приложения, чтобы запретить доступ на запись к выделенной памяти. Приложения могут запретить доступ на запись к выделенной памяти с помощью функции VirtualProtect . Запрет доступа на запись обеспечивает максимальную защиту исполняемых областей адресного пространства процесса. Следует попытаться создать приложения, использующие наименьшее исполняемое адресное пространство, что позволяет свести к минимуму объем памяти, который предоставляется для использования памяти.

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

Совместимость приложений

Некоторые функциональные возможности приложения несовместимы с DEP. Приложения, которые выполняют динамическое создание кода (например, JIT-создание кода) и не помечают явно созданный код с разрешением на выполнение, могут иметь проблемы совместимости на компьютерах, использующих DEP. Приложения, написанные в библиотеке активных шаблонов (ATL) версии 7.1 и более ранних версий, могут попытаться выполнить код на страницах, помеченных как не исполняемые, что приводит к сбою NX и завершает работу приложения; Дополнительные сведения см. в разделе SetProcessDEPPolicy. Большинство приложений, выполняющих действия, несовместимые с DEP, должны быть обновлены для правильной работы.

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

Новые статьи:  Решение проблемы с конфликтом IP-адресов в Windows 7

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

Как отключить DEP в Windows

В этой инструкции поговорим о том, как отключить DEP (Data Execution Prevention, предотвращение выполнения данных) в Windows 7, 8 и 8.1. То же самое должно работать и в Windows 10. Отключение DEP возможно как для системы в целом, так и для отдельных программ, при запуске которых появляются ошибки Data Execution Prevention.

Смысл технологии DEP заключается в том, что Windows, опираясь на аппаратную поддержку NX (No Execute, для процессоров AMD) или XD (Execute Disabled, для процессоров Intel) предотвращает выполнение исполняемого кода из тех областей памяти, которые помечены как неисполняемые. Если проще: блокирует один из векторов атаки вредоносного ПО.

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

Отключение DEP для Windows 7 и Windows 8.1 (для всей системы)

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

В командной строке введите bcdedit.exe /set nx AlwaysOff и нажмите Enter. После этого перезагрузите ваш компьютер: при следующем входе в данную систему DEP будет отключен.

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

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

Два способа отключить DEP для отдельных программ

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

В первом случае, зайдите в Панель управления — Система (можно также кликнуть по значку «Мой компьютер» правой кнопкой и выбрать «Свойства»). Выберите в списке справа пункт «Дополнительные параметры системы», затем на вкладке «Дополнительно» нажмите кнопку «Параметры» в разделе «Быстродействие».

Изменение дополнительных параметров системы

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

Новые статьи:  Почему мерцает экран монитора компьютера

Отключение DEP для программ и служб Windows

Отключение DEP для программ в редакторе реестра

По сути то же самое, что только что описывалось с применением элементов панели управления, можно сделать и посредство редактора реестра. Для его запуска нажмите клавиши Windows + R на клавиатуре и введите regedit после чего нажмите Enter или Ok.

В редакторе реестра перейдите к разделу (папки слева, если раздела Layers нет, создайте его) HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers

И для каждой программы, для которой требуется отключение DEP, создайте строковый параметр, имя которого соответствует пути к исполняемому файлу этой программы, а значение — DisableNXShowUI (см. пример на скриншоте).

Отключаем DEP в редакторе реестра

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

А вдруг и это будет интересно:

  • Лучшие бесплатные программы для Windows
  • Как включить защиту системы Windows 10 и Windows 11
  • Syncthing — синхронизация файлов Windows, Linux, MacOS и Android
  • Память встроенной видеокарты Intel HD или Iris Xe, AMD Radeon — как посмотреть, увеличить или уменьшить
  • Файл открыт в System при удалении файла — как исправить?
  • Как открыть порты в Windows и посмотреть список открытых портов
  • Windows 11
  • Windows 10
  • Android
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Установка с флешки
  • Настройка роутера
  • Всё про Windows
  • В контакте
  • Одноклассники

    лилия 09.04.2015 в 05:38

  • Dmitry 09.04.2015 в 10:29

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

Как отключить функцию DEP в Windows 7

В Виндовс 7 встроен очень полезный алгоритм предотвращения выполнения данных (ПВД), оригинальное название Data Execution Prevention (DEP). Суть состоит в следующем — ОС при аппаратной реализации NX (от фирмы-производителя Advanced Micro Devices) либо XD (от фирмы-производителя Интел) запрещает выполнять действия алгоритму из того сектора оперативной памяти, который отмечен параметром неисполняемый. Более просто: выполняет блокировку одного из направлений вирусной атаки.

Отключение DEP для Виндовс 7

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

Способ 1: Командная строка

  1. Открываем «Пуск», вводим cmd . Жмём ПКМ, открываем с возможностью администрирования. Пуск cmd запуск от имени администратора
  2. Набираем следующее значение:
    bcdedit.exe /set nx AlwaysOff
    Жмём «Enter». Cmd команда отключения DEP
  3. Увидим оповещение, в котором написано, что действие завершено, после этого перезапускаем ПК.

Способ 2: Панель управления

Панель управления система DEP

  1. . С возможностью администрирования входим в ОС, переходим по адресу:
    Панель управления\Все элементы панели управления\Система
  • Переходим в «Дополнительные параметры системы». Система дополнительные параметры системы
  • Подраздел «Дополнительно» находим в участке «Быстродействие», переходим в пункт «Параметры». Свойства системы быстродействие параметры

  • Подраздел «Предотвращение выполнения данных», выбираем значение «Включить DEP для …:». Выключение Dep
  • В данном меню у нас появляется выбор, самим настроить для каких именно программ или приложений необходимо выключить алгоритм ПВД. Выделяем программу, представленную в каталоге, либо жмём «Добавить», выбираем файл с расширением «.exe». Выключение DEPдля определенной программы
  • Новые статьи:  Установка Windows 7 из-под Windows 7

    Способ 3: Редактор базы данных

    1. Открываем редактор базы данных. Наиболее оптимальный вариант – нажимаем клавиши «Win+R», пишем команду regedit.exe .

    выполнить regedit

  • Переходим в следующий раздел:
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers . Редактор реестра Layers
  • Создаем «Строковый параметр», название которого приравнивается к адресу местоположения элемента, в котором необходимо отключить функционал DEP, значение присваиваем – DisableNXShowUI . Строковый параметр отключение DEP
  • Включения работы DEP: запускаем интерпретатор команд Виндовс 7, и в нём вводим команду:
    Bcdedit.exe/set nx OptIn
    Дальше перезапускаем ПК.

    При выполнении данных несложных действий при помощи командной строки или настройки системы/реестра отключается функция DEP в Виндовс 7. Представляет ли опасность отключение функционала DEP? Чаще всего — нет, если программа, для которой происходит это действие, с официального ресурса, то это не опасно. В других случаях есть опасность заражения вирусным ПО.

    Что такое защита от выполнения данных (DEP)?

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

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

    Несовершенная аналогия

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

    Бариста проверяет свой телефон в кафе

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

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

    Выключение или включение DEP

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

    1. Нажмите клавишу Windows или кнопку Пуск .
    2. Введите Безопасность Windows и выберите приложение Безопасность Windows, которое отображается в верхней части результатов поиска.
    3. Выберите App & элемент управления браузером, а затем — Защита от эксплойтов.

    Защита от выполнения данных отображается на вкладке Параметры системы .

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


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