время dep что это

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

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

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

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

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

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

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

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

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

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

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

Поэтому исполняемый код в разделах данных должен быть перенесен в раздел кода, или раздел данных, содержащий исполняемый код, должен быть явно помечен как исполняемый. Атрибут Executable, image _ SCN _ mem _, должен быть добавлен в поле характеристики соответствующего заголовка раздела для разделов, содержащих исполняемый код. Дополнительные сведения о добавлении атрибутов в раздел см. в документации, входящей в состав вашего компоновщика.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *