SMAP отключен: как смена стека... Заметка

SMAP отключен: как смена стека, которая не должна работать, выявила компромисс в дизайне ядра

Работая над цепочкой эксплойтов ядра в Windows 11, я заметил, что переключение стека в память пользовательского режима не вызвало SMAP. Я подготовил три эксперимента, чтобы выяснить, почему. Коротко: обычный путь входа в системный вызов приходит с RFLAGS.AC=1. SMAP фактически отключен для любого кода, достигнутого через стандартное распределение IOCTL. Это соответствует тому, что MSRC документировал еще в 2020 году (ядро Windows просто не было создано с учетом SMAP, и его доработка затронула бы около 2900 мест: здесь). Мой вывод здесь не нов. Это просто экспериментальное подтверждение архитектурного компромисса в текущих сборках. Я просто хотел пролить свет на эту слепую зону. отправлено пользователем /u/Important_Map6928