Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
BSOD в win32k.sys 04.11.08 01:11
Publisher: dl <Dmitry Leonov>
|
BSOD в win32k.sys сообщение, пример кода http://bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=2&m=152274, http://slil.ru/26299966
Дмитрий Кононко aka Killer {R} обнаружил устойчиво воспроизводимую проблему с пользовательскими Win32-программами под Win'2k3, Vista x86 и x64. Для проведения атаки достаточно прав обычного пользователя, что особенно неприятно - завалить систему с правами администратора каждый может, то ли дело из-под рядового юзера.
Многократное переключение между Win32-объектами "рабочий стол" (desktop), на которых есть окна, с одновременным созданием потоков, устанавливающих/снимающих Win32-хуки на этих столах, и рассылающих на них оконные сообщения, в половине случаев приводит к BSODу из-за AV в коде win32k.sys, а в другой половине - к зависанию системы.
Происходит это предположительно из-за race condition с потоком, который снимает хук, и одновременной доставкой сообщения в другой поток - видимо, оно пытается вызвать только что убитый хук. Пока непонятно, имеют ли десктопы к этому прямое...
Полный текст
|
|
Меня больше всего интересует, как он до этого допер 05.11.08 05:45
Автор: Zef <Alloo Zef> Статус: Elderman
|
"Многократное переключение между Win32-объектами "рабочий стол" (desktop), на которых есть окна, с одновременным созданием потоков, устанавливающих/снимающих Win32-хуки на этих столах, и рассылающих на них оконные сообщения"
Очень нетривиальная последовательность операций! Ладно: "почесать правое ухо левой рукой через-под правое колено". Но когда это надо сделать 1000 раз подряд... Ясно, что чел наткнулся на этот глюк случайно, но что же он такое сотворил?
|
| |
Писал (вернее переписывал) свою виндовую тулзу у которой в... 05.11.08 11:40
Автор: Killer{R} <Dmitry> Статус: Elderman Отредактировано 05.11.08 12:02 Количество правок: 1
|
Писал (вернее переписывал) свою виндовую тулзу у которой в фичах есть виртуальные десктопы. Тулза делала следующее - переключала дестопы и ставила на текущем активном десктопе хуки на мышь клаву etc для некоторых своих других фич. Ну я вначале исключительно из соображений экономии ресурсов снимал хуки с неактивного дестопа при переключении на другой. Потом пришлось забить на экономию, потоки не гасить и хуки не снимать, ибо как выяснилось это убивает висту :) Воспроизводилось не то чтобы очень часто, но...
Да, а на HWND_BROADCAST мессагу какую нить я всегда шлю после снятия хуков. Т.к. это приводит в выгрузке длл, содержащей процедуру хука из процессов, в которые она вгрузилась. Что позволяет без ребута апдейтить эту длл потом.
|
| |
Меинстрим-былокодеры ходят проторенными путями, в которых типо всё «чистенько». Но путь Мастера тернист и непредсказуем ;-) 05.11.08 08:12
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
|
|