dd_action('wp_footer', function() { ?>

2.10 DEP (Data Execution Prevention)

DEP (Data Execution Prevention)

После настройки:

  • режима совместимости;
  • прав администратора;
  • полноэкранной оптимизации;
  • DPI;
  • разрешения;
  • цветовых режимов;

следующий уровень проверки — DEP (Data Execution Prevention).

Эта функция Windows редко является причиной проблем с современными играми, но для старых игр и приложений она иногда становится причиной:

  • мгновенного закрытия после запуска;
  • вылета без ошибки;
  • невозможности загрузить сохранение;
  • аварийного завершения во время игры.

Особенно это касается старых программ, которые создавались под:

  • Windows 98;
  • Windows 2000;
  • Windows XP.

🔍 Что такое DEP

DEP — это:

 
Data Execution Prevention
 

или:

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

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

Проще говоря:

Windows разделяет память программы на области:

  • где можно хранить данные;
  • где можно выполнять код.

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


🔐 Зачем нужен DEP

DEP защищает систему от атак, когда вредоносный код пытается:

  1. записать данные в память;
  2. заставить компьютер выполнить эти данные как программу.

Такие атаки называются:

  • buffer overflow;
  • переполнение буфера;
  • выполнение произвольного кода.

Для современных программ DEP обычно незаметен.

Но старые игры иногда использовали нестандартные методы работы с памятью.


🎮 Почему DEP может мешать старым играм

Старые игровые движки создавались до массового использования современных защит.

Они могли:

  • изменять память во время работы;
  • использовать нестандартные загрузчики;
  • применять старые защиты от копирования;
  • выполнять код динамически.

Для Windows XP это было нормально.

Для Windows 10/11 может быть заблокировано.


⚠️ Симптомы проблемы с DEP


🟥 1. Игра закрывается сразу после запуска

Сценарий:

  1. Запускается EXE.
  2. Появляется заставка.
  3. Через несколько секунд игра закрывается.

Без:

  • сообщения;
  • ошибки;
  • окна.

🟥 2. Ошибка доступа к памяти

Например:

 
Access violation
 

или:

 
The instruction at ... referenced memory
 

🟥 3. Вылет при загрузке игры

Например:

  • меню работает;
  • новая игра начинается;
  • происходит вылет.

Причина:

игровой движок загружает дополнительные модули.


🟥 4. Старый игровой лаунчер работает, а игра нет

Например:

 
Launcher.exe
 

запускается нормально.

Но:

 
Game.exe
 

закрывается.


🎮 Какие игры могут сталкиваться с DEP

Чаще:

Старые 32-битные игры

Особенно:

  • Windows 98;
  • Windows 2000;
  • Windows XP.

Игры со старыми защитами

Например:

  • SafeDisc;
  • SecuROM;
  • StarForce.

Старые игровые движки

Например:

  • ранние DirectX игры;
  • старые 3D-движки;
  • нестандартные загрузчики.

🛠️ Как проверить, виноват ли DEP

Самый правильный способ:

не отключать DEP полностью сразу.

Сначала проверить игру через исключение.


🔧 Добавление игры в исключения DEP

Windows 10 / Windows 11


Шаг 1

Откройте:

 
Панель управления
 

Шаг 2

Перейдите:

 
Система и безопасность
 

Шаг 3

Откройте:

 
Система
 

Шаг 4

Слева:

 
Дополнительные параметры системы
 

Шаг 5

Откроется окно:

 
Свойства системы
 

Перейдите:

 
Дополнительно
 

Шаг 6

Раздел:

 
Быстродействие
 

Нажмите:

 
Параметры
 

Шаг 7

Откройте вкладку:

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

Выберите:

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

Шаг 8

Нажмите:

 
Добавить
 

Выберите:

 
Game.exe
 

Нажмите:

 
Применить
 

Перезагрузите компьютер.


⚙️ Альтернативный способ через командную строку

Используется редко.

Открыть CMD от администратора:

 
bcdedit.exe /set {current} nx OptOut
 

После перезагрузки:

DEP будет работать в режиме исключений.


Вернуть стандартный режим:

 
bcdedit.exe /set {current} nx OptIn
 

⚠️ Полное отключение DEP

Команда:

 
bcdedit.exe /set {current} nx AlwaysOff
 

После перезагрузки:

DEP полностью отключён.


Но это:

❌ не рекомендуется.

Причины:

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

🧪 Практические примеры


Старые игры Windows XP

Симптом:

 
Запуск → заставка → закрытие
 

Проверка:

  1. Включить исключение DEP.
  2. Запустить игру.
  3. Проверить результат.

Старый редактор игры или модификации

Например:

  • игровые редакторы;
  • старые лаунчеры;
  • инструменты настройки.

Они чаще конфликтуют с DEP, чем сама игра.


SafeDisc игры

Иногда проблема выглядит как:

  • EXE запускается;
  • появляется ошибка;
  • игра закрывается.

Причина может быть:

  • DEP;
  • отключённая служба защиты;
  • несовместимость Windows.

❌ Что DEP НЕ исправляет

Очень важно.

DEP не поможет, если:


Нет DLL

Ошибка:

 
MSVCP140.dll
 

Нужно:

Visual C++ Runtime.


Нет DirectX

Ошибка:

 
d3dx9_43.dll
 

Нужно:

DirectX 9.0c.


Нет видеоподдержки

Ошибка:

 
Failed to initialize graphics
 

Нужно:

  • драйвер;
  • эмулятор DirectX;
  • другой GPU.

Повреждены файлы игры

Нужно:

  • восстановление;
  • переустановка.

🔗 DEP и режим совместимости

Для старых игр иногда используется комбинация:

 
Windows XP SP3
+
Запуск администратора
+
Отключение полноэкранной оптимизации
+
DEP исключение
 

Например:

для игр 2002–2008 годов.


🧭 Правильный порядок диагностики

Если игра закрывается без ошибки:

  1. Проверить режим совместимости.
  2. Проверить администратора.
  3. Отключить полноэкранную оптимизацию.
  4. Проверить DPI.
  5. Проверить разрешение.
  6. Проверить цветовой режим.
  7. Проверить DEP.
  8. Проверить DirectX и DLL.

Итог

DEP — это защитный механизм Windows, который иногда конфликтует со старыми играми.

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

✅ мгновенный вылет после запуска;
✅ закрытие без ошибки;
✅ ошибки доступа к памяти;
✅ проблемы старых 32-битных приложений.

Но DEP — только один из возможных факторов.

Если после настройки игра всё ещё не запускается, следующим этапом проверки становится:
UAC (контроль учётных записей Windows)