Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Рисунок 3. Организация виртуальной памяти
Рисунок 4. NX-бит — новый атрибут защиты в PDE/PTE
Воспользовавшись шумихой, развернутой AMD, компания Intel внедрила поддержку XD-бита в 32-разрядные Pentium, сделав эту «технологию» доступной всем и каждому (желающих пересесть на AMD-64 ради одного лишь DEP набралось не так уж и много). Строго говоря, Nx присутствует не только в «настоящих» 64-битных процессорах от AMD, но и в собранных на 64-битном ядре 32-битных (т.е. работающих в состоянии перманентной эмуляции i386) процессорах – например, Sempron (около 99$ за штуку). Достаточно лишь воткнуть последний Pentium-4 и обновить ядро, чтобы Windows могла задействовать новые аппаратные возможности, и тогда при попытке выполнения прикладного кода в куче, секции данных или в стеке возбуждается исключение типа STATUS_ACCESS_VIOLATION (C0000005h), и если только программист не установил свой обработчик SEH, выполнение программы аварийно завершается с выдачей сообщения «to help protect your computer, Windows has closed this program» (см. рис. 5).
Рисунок 5. Реакция DEP на попытку выполнения кода на стеке
В режиме ядра при попытке выполнения кода в неисполняемой области памяти возбуждается исключение ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY c BugCheck-кодом FCh, обрушивающим систему в «синий экран». 64-битные версии NT защищают от исполнения стек ядра, paged- и session pool, а 32-битные – только стек.
Если процессор не поддерживает NX/XD-битов,
система активирует программный (software-enforced) DEP, который даже и не
пытается эмулировать неисполняемый стек/кучу (а ведь мог бы!). Технология,
которую продвигает Microsoft, в действительности представляет собой примитивную
защиту обработчика структурных исключений, ранее известную под именем SafeSEH.
Она никак не препятствует выполнению shell-кода, но затрудняет использование им
структурных исключений, если тот вдруг решит их использовать. Подробнее об этом
можно прочитать в статье «SEH на службе контрреволюции», электронная копия
которой лежит на сервере
Мы будем обсуждать только аппаратный DEP,
поскольку его сложнее всего обойти. Некоторые даже считают, что это невозможно
вообще: «…на сегодняшний день не существует ни одного хотя бы концептуального
эксплойта, на практике доказывающего возможность поражения Windows XP
с установленным пакетом обновления Service Pack 2» (