| 
 
 
 
 Легенда:
  новое сообщение 
  закрытая нитка 
  новое сообщение 
  в закрытой нитке 
  старое сообщение   | 
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
Новичкам также крайне полезно ознакомиться с данным документом.
| 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
 |  
|  |  
 
 
 |  |