В чем разница между постоянным включением DEP ("/ NoExecute = AlwaysOn" в boot.ini) и отказом от DEP ("/ NoExecute = OptOut" в boot.ini) с без исключений?
«без исключений» = пустой список программ, для которых DEP не применяется. DEP = Предотвращение выполнения данных (оборудование).
Можно было бы ожидать, что это будет работать так же, но для некоторых приложений это имеет значение:
Например. для всех версий UltraEdit 14 (14,2). Он вылетает при запуске, когда DEP всегда включен, по крайней мере, в Microsoft Windows XP Professional Edition x64 edition. (Обновление 2010-03-11: эта проблема была исправлена в UltraEdit 15.2 и новее.)
Обновление 2010-07-12: Mozilla Thunderbird 2.0.0.19 также вылетает при запуске для DEP, установленного на самый высокий уровень (как это обычно делал UltraEdit).
Есть ли разница между Windows XP, Windows Vista и Windows 7?
Есть ли разница между 32-битной и 64-битной версиями Windows?
Описание конфигурации
Выбрать в Этот параметр является конфигурацией по умолчанию. В системах с процессорами, которые могут реализовывать аппаратно-принудительную DEP, DEP по умолчанию включен для ограниченных системных двоичных файлов и программ, которые «соглашаются». При использовании этого параметра по умолчанию DEP охватывает только системные двоичные файлы Windows.
Уклоняться DEP включен по умолчанию для всех процессов. Вы можете вручную создать список конкретных программ, к которым не применяется DEP, используя диалоговое окно «Система» на панели управления. Специалисты в области информационных технологий (ИТ) могут использовать Application Compatibility Toolkit, чтобы «отказаться» от защиты DEP для одной или нескольких программ. Исправления совместимости системы или прокладки для DEP вступают в силу.
Всегда включен Этот параметр обеспечивает полное покрытие DEP для всей системы. Все процессы всегда выполняются с применением DEP. Список исключений для исключения определенных программ из защиты DEP недоступен. Исправления совместимости системы для DEP не вступают в силу. Программы, которые были отключены с помощью набора средств обеспечения совместимости приложений, работают с примененным DEP.
AlwaysOff Этот параметр не обеспечивает покрытие DEP для какой-либо части системы, независимо от аппаратной поддержки DEP. Процессор не работает в режиме PAE, если в файле Boot.ini не указан параметр / PAE.
Установка уровня политики DEP системы на OptOut позволяет любому 32-битному потоку вызывать SetSystemDEPPolicy (0), который отключит защиту DEP для пространства памяти, выделенного этому процессу. Если для системной политики DEP задано значение AlwaysOn, вызовы SetSystemDEPPolicy вызовут ошибку.
По вопросу 1: я думаю, что эта разница вызвана бэкдорами, которые Microsoft добавила в аппаратный DEP для OptOut, по словам Фабриса Ру (см. Ниже). В случае IrfanView, для которого Стив Гибсон заметил ту же разницу, что и я для UltraEdit (см. Вопрос), разница вызвана упаковщиком EXE, не поддерживающим DEP (ASPack), для которого Microsoft закодировала бэкдор.
Источники:
Из http://blog.fabriceroux.com/index.php/2007/02/26/hardware_dep_has_a_backdoor?blog=1, «У аппаратного DEP есть бэкдор» Фабриса Ру. 26 февраля 2007 г. «IrfanView не использовал никаких уловок для обхода DEP ... Microsoft только что закодировала бэкдор, используемый только в OPTOUT. Обычно Microsoft проверяет заголовок исполняемого файла на наличие раздела, соответствующего одной из трех строк. Если одна из этих строк найдена, DEP будет преобразован ВЫКЛЮЧЕНО для этого приложения в windows. ... 'aspack', 'pcle', 'sforce' "
Из http://www.grc.com/sn/sn-078.htm, автор Стив Гибсон. «Я нигде не могу найти документацию на сайте Microsoft, потому что мы видим разницу между постоянным включением и отключением. То есть, вы можете представить, что постоянный режим был бы таким же, как отключение, если бы вы не у меня нет программ отказа. Оказывается, дело не в этом. Например ... просмотрщик файлов IrfanView ... отлично работает в режиме отказа, даже если он не был отключен. Но он выиграл » t запуск, Windows блокирует его запуск ... в постоянно включенном режиме ".
Из http://www.grc.com/sn/sn-083.htm, автор Стив Гибсон. "... IrfanView ... не будет работать с включенным DEP. Это потому, что он использует упаковщик EXE, исполняемую программу сжатия под названием ASPack. И это имеет смысл, потому что, естественно, исполняемый компрессор должен распаковывать исполняемый файл, поэтому он выделяет кучу памяти данных, в которую он распаковывает сжатый исполняемый файл, а затем запускает его. Ну, он выполняет выделение данных, что именно для того, чтобы останавливать DEP, предназначен. С другой стороны, UPX, который на самом деле является ведущим и самым популярным компрессором EXE, он совместим с DEP, потому что эти ребята поняли, эй, когда мы выделяем эту память, мы должны помечать страницы как исполняемые ".
Более короткий и быстрый заголовок - MS KB 875352 ;-)
Больше, чем вам когда-либо требовалось знать ...
На Стива Гибсона об этом идет довольно много споров. защищаемый домашняя страница. Кроме того, они довольно часто обсуждали это в безопасность сейчас подкаст. Вы также можете найти стенограммы на grc.com
KB 875352 на самом деле один: OptOut позволяет указать список программ, для которых DEP не применяется, AlwaysOn всегда будет применять DEP ко всему.
Я знаю, что это старая ветка, но сегодня меня снова спросили об этом, и я хочу положить этому конец. AlwaysOn собирается включить DEP во всех программах. OptOut просто означает, что Пользователь может указать приложения, которые будут отключены от DEP. Если приложение не указано в списке «Исключения», то для этого приложения включен DEP.