Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

 eXeL@B —› Программирование —› PAGE_FAULT_IN_NONPAGED_AREA
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 05 августа 2008 12:22
· Личное сообщение · #1

Собственно, вопрос следйющий: в нулевом кольце имеем исключение PAGE_FAULT_IN_NONPAGED_AREA. В одном и том же коде оно происходит не постоянно, а, в принципе, достаточно редко, что делает практически невозможным как моделирование ошибки, так и обработку её по конструкции .if ... .endif. SEH в том виде, в котором он используется в третьем кольце защиты стандартно, ошибку не обрабатывает, внимание вопрос - Как же тогда предотвратить появление синего экрана?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 05 августа 2008 19:06
· Личное сообщение · #2

Сехи в ринг0 спасают не от всех ошибок. А избавиться от синяка не очень сложно-надо просто писать правильно. А раз уже криво написал-крашдамп разбирай.



Ранг: 186.8 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 05 августа 2008 21:30
· Личное сообщение · #3

Int 0Dh похучить. А также мона похучить KeBugCheckEx и тупо прибивать поток, сгенеривший page fault.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 11 августа 2008 13:50
· Личное сообщение · #4

MoonShiner
Спасибо за совет, но я нашёл лучшее, и в принципе, документированное решение, перед обращением к странице, которая отсутствует в памяти, вызываем функцию MmIsValidAddress с указателем на эту самую память:
invoke MmIsValidAddress,edx
например так, а далее если в еах ноль, значит адрес невалидный.
Archer
Про криво написал - тут ты не прав, я ж не виноват,что после выполнения функций в ядре страница иногда выгружена, и указатель указывает туда куда не надо. Для справок, данная техника применяется для перехвата функции по KDT.

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Программирование —› PAGE_FAULT_IN_NONPAGED_AREA
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати