Re: Как подменить стек?
От: Valerio Россия linkedin.com/in/boronin
Дата: 21.07.03 04:18
Оценка: 9 (1)
АШ>Статья:
АШ>Как подменить стек?

статья хорошая!

в качестве мелкого замечания-дополнения по своей области:
наверное стоит отметить что в статье речь не идет о режиме ядра?

1. в режиме ядра в НТ стек для обработки IRP ограничен обычно 12К
(вообще задается ключом в реестре для IO Manager) и с исключениями
для ловли stack overflow лучше не пользоваться

в ядре используются различные техники для подмены стека и задача
выполнима, но опыт показывает что это часто приводит к сбоям уже в
чужом коде, даже если в своем коде подмена работает

пример — различные фильтры, когда верхний драйвер совершенно не ждет
такой пакости как измененный стек от нижнего

конкретный пример — Norton Antivirus довольно долго использовал
технику подмены стека и практически все 3d party file system filters
не работали вместе с ним поэтому тут надо быть предельно акуратным

2. подменить же стек в 9х (на уровне ядра) можно очень легко:
есть такая замечательная вещь как _Call_On_My_Stack
... << RSDN@Home 1.1 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.