Thursday, May 19, 2011

программное исключение файла из проверок DEP (предотвращения выполнения данных)


Data Execution Prevention (DEP) - это набор программных и аппаратных средств, выполняющих дополнительные проверки безопасности  для предотвращения выполнения вредоносного кода.
В моем случае это привело к невозможности запуска некоторых старых версий приложений на части компьютеров. поэтому необходимо отключить предотвращение выполнения данных, желательно программно на момент установки ПО. Для этого нужно выполнить 3 этапа:
  1. Проверить текущий уровень DEP

    Выполнить следующую команду:

    WMIC OS Get DataExecutionPrevention_SupportPolicy

    Это вернет целое число, которое соответствует одному из уровней политики:

    2 OptIn (По умолчанию)
    Включить DEP только для основных программ Windows.
    3 OptOut
    Включить DEP для всех программ и служб, кроме выбранных. Администратор может добавлять создать список исключений DEP. (это нам и нужно).
    1 AlwaysOn
    Включить DEP для всех процессов.
    0 AlwaysOff
    Отключить DEP для всех процессов.
  2. Для изменения общего уровня политики DEP нужно выполнить следующее:

    bcdedit.exe /set {current} nx OptOut

    Затем перезагрузить систему.
  3. Список исключений

    Добавить приложение в список исключений DEP можно путем изменения реестра, как показано ниже:

    Для каждого приложения  создайте строковый параметр реестра с именем, в котором укажите полный путь к исполняемому файлу (например, C:\Program Files\Windows Live\WindowsLiveWriter.exe) и значение "DisableNXShowUI" в данной ветке реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
     
Данные этапы легко встроить в установщик любого приложения. 

No comments:

Post a Comment