Что это такое, и как его отключить?
А то там только два варианта включения почему-то...
Предотвращение выполнения данных (DEP) используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. Такой тип угроз безопасности наносит ущерб, занимая по очереди все области памяти, используемые программой. Затем вирус распространяется и повреждает другие программы, файлы и даже контакты электронной почты.
В отличие от брандмауэра или антивирусной программы средство DEP не препятствует установке потенциально опасных программ на компьютер. Вместо этого выполняется наблюдение, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как «невыполняемые». Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление.
DEP может использовать поддержку программного и аппаратного обеспечения. Для использования DEP на компьютере должна быть установлена операционная система Пакет обновления 2 для Microsoft Windows XP (SP2) или Windows Server 2003 с пакетом обновления 1 (SP1), или более поздняя версия одной из этих программ. Программное обеспечение DEP используется для защиты от некоторых типов атак вредоносного кода, но для использования возможностей DEP в полном объеме процессор должен поддерживать «защиту от выполнения». Это аппаратная технология, разработанная для обозначения некоторых областей памяти как невыполняемых. Если процессор не поддерживает аппаратную версию DEP, рекомендуется обновить процессор, чтобы использовать возможности защиты от выполнения.
ANDLL писал(а):Как процессор определяет, какие данные предназначены длля выполнения, а какие нет?
tyomitch писал(а):ANDLL писал(а):Как процессор определяет, какие данные предназначены длля выполнения, а какие нет?
По флагам секций в PE-файле, и по флагам PAGE_*, передаваемым в VirtualAlloc.
Sebas писал(а):tyomitch писал(а):ANDLL писал(а):Как процессор определяет, какие данные предназначены длля выполнения, а какие нет?
По флагам секций в PE-файле, и по флагам PAGE_*, передаваемым в VirtualAlloc.
А мож НТФС потоки?
MSDN 2003 писал(а):The VirtualAlloc function reserves or commits a region of pages in the virtual address space of the calling process. Memory allocated by this function is automatically initialized to zero, unless MEM_RESET is specified
ANDLL писал(а):VirtualAlloc резервирует(или передает) серию страниц в памяти. Соответственно, регион, зарезирвированный с помощью VirtualAlloc округляется до размера кратного 64 Кб.
А malloc вызывает HeapAlloc, который вообще не округляет размер региона. HeapAlloc, как я понимаю, сама вызывает VirtualAlloc в случае, если заканчиваются выделенные страницы. А может и нет. Фишка в том, что HeapAlloc не принимает параметров касательно типа выделяемой памяти...
Вернуться в Windows-программирование
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4