Дело было на XP...
На днях прикидывал пути решения регулярной на форумах задачки: скрытный (в смысле — окна скрыты) запуск приложения.
И один из вариантов с WH_CBT преподнес сюрприз, отмеченный мнемоникой в заголовке.
Суть в том, что совершенно легальные действия по изменению Z-order
после нажатия стандартного сочетания Win+D или соответствующей кнопки на Quick Launch
приводят к немедленной перезагрузке с извещением о серьезной ошибке...
В аттаче — минимальный рабочий пример (+ исходник): обычный шаблон создания простого окна,
только перед вызовом CreateWindowEx — в своем потоке ставим хук WH_CBT,
на HCBT_CREATEWND устанавливаем наше окно в самый низ Z-order, и затем хук снимаем. Вот и все.
Полученное окно спрятано за "рабочий стол", поэтому на таскбаре оставлена кнопка, контроля ради.
Ну, и теперь — Win+D !
P.S.
Проверил только на XP-pro-sp2, и, конечно, очень интересует, как там на других WinOS? Не поленитесь, дайте знать.
Проверил, воспроизводится на всех системах (кроме может быть NT4). Падение в Win32k.sys, значит опять в оконной подсистеме что-то неладно. Надо бы баг им запостить.
Здравствуйте, x64, Вы писали:
x64>Проверил, воспроизводится на всех системах (кроме может быть NT4).
Спасибо!
x64>Падение в Win32k.sys, значит опять в оконной подсистеме что-то неладно. x64>Надо бы баг им запостить.
Да как-то не получилось найти вменяемый feedback, или просто я такой тупой...
Раз за разом что-то там не распознают в js моего IE — и привет.
(Отправлять же прямо с компа из-под сообщения об ошибке что-то не хочется).
K>Ну, и теперь — Win+D ! K>P.S. K>Проверил только на XP-pro-sp2, и, конечно, очень интересует, как там на других WinOS? Не поленитесь, дайте знать.
да коряво у них там все с хуками, я уже находил другой баг там: http://bugtraq.ru/rsn/archive/2008/11/01.html
но он на моей win2k3 уже не воспроизводится, пофиксили когдато с апдейтами
Как много веселых ребят, и все делают велосипед...
Здравствуйте, kero, Вы писали:
K>Дело было на XP... K>На днях прикидывал пути решения регулярной на форумах задачки: скрытный (в смысле — окна скрыты) запуск приложения. K>И один из вариантов с WH_CBT преподнес сюрприз, отмеченный мнемоникой в заголовке.
K>Суть в том, что совершенно легальные действия по изменению Z-order K>после нажатия стандартного сочетания Win+D или соответствующей кнопки на Quick Launch K>приводят к немедленной перезагрузке с извещением о серьезной ошибке...
K>В аттаче — минимальный рабочий пример (+ исходник): обычный шаблон создания простого окна, K>только перед вызовом CreateWindowEx — в своем потоке ставим хук WH_CBT, K>на HCBT_CREATEWND устанавливаем наше окно в самый низ Z-order, и затем хук снимаем. Вот и все. K>Полученное окно спрятано за "рабочий стол", поэтому на таскбаре оставлена кнопка, контроля ради.
K>Ну, и теперь — Win+D !
K>P.S. K>Проверил только на XP-pro-sp2, и, конечно, очень интересует, как там на других WinOS? Не поленитесь, дайте знать.
K>http://files.rsdn.ru/42164/4_win+d.zip
Здравствуйте, x64, Вы писали:
K>>(Отправлять же прямо с компа из-под сообщения об ошибке что-то не хочется).
x64>Самый простой способ и не вижу тут ничего такого. Поставь kernel memory dump и будет тебе щастье, всего-то метров 200.
Но в данном-то случае — какой вообще смысл отсылать что-либо сверх моей демки? компы-то у них, поди, есть?
Однако в конце-концов осенило: вспомнил свои багрепорты по Process Explorer и просто написал в блог Марку Русиновичу.
Он очень быстро ответил, переслал ему, что он попросил, ждем продолжения
.
Здравствуйте, x64, Вы писали:
K>>...написал в блог Марку Русиновичу. K>>Он очень быстро ответил, переслал ему, что он попросил, ждем продолжения
x64>*Запаслись попкорном* x64>Ссылку дал бы сюда что ли.
O>смеха ради запустил на win'95 (помните такую? ) и... http://img96.imageshack.us/img96/7245/w95bsod.png O>что характерно — Win+D не потребовался (да и нету его там)
надо бы тогда еще на Wine проверить
А знаете — за это сообщение вам отдельное спасибо, кроме шуток. Еще бы узнать про Win98 (не виртуалку)...
Хотелось бы проверить предположение, что организация Z-order с тех пор не менялась.
Здравствуйте, std.denis, Вы писали:
SD>надо бы тогда еще на Wine проверить
Сам Wine не имею, но судя по сообщениям на RSDN — винды там сымитированы довольно халтурно. Помнится, и Z-order у них не такой, и EditBox — однобуферный.... Так что можно и не проверять
Только что сообщили, что Windows 7 Build 7600 x86 окно под "рабочий стол" загнать не позволяет и бсода нет.
Нет ли у кого таких же виндов, — проверить, может и от машины зависит?
K>Windows 7 Build 7600 x86 окно под "рабочий стол" загнать не позволяет и бсода нет. K>Нет ли у кого таких же виндов, — проверить, может и от машины зависит?
Есть падение, именно на этой системе, виртуалка VirtualBox 3.1.0. А зависит скорее не от машины, а от набора установленного софта, типа всяких там "менеджеров окон" и т.п.
Здравствуйте, x64, Вы писали:
K>>Windows 7 Build 7600 x86 окно под "рабочий стол" загнать не позволяет и бсода нет. K>>Нет ли у кого таких же виндов, — проверить, может и от машины зависит?
x64>Есть падение, именно на этой системе, виртуалка VirtualBox 3.1.0. А зависит скорее не от машины, а от набора установленного софта, типа всяких там "менеджеров окон" и т.п.
А кстати, судя по тому же сообщения о Windows 7 Build 7600 x86 от Derek —
(http://www.wasm.ru/forum/viewtopic.php?id=35657, сообщение #21) —
на виртуалке валится вообще все подряд...
А Windows 7 Build 7600 x86 у него — "physical host"...
Здравствуйте, kero, Вы писали:
K>А кстати, судя по тому же сообщения о Windows 7 Build 7600 x86 от Derek - K>(http://www.wasm.ru/forum/viewtopic.php?id=35657, сообщение #21) - K>на виртуалке валится вообще все подряд... K>А Windows 7 Build 7600 x86 у него — "physical host"...
Еще две совсем короткие демки Z_бага (назовем его так ), обе на MessageBox-е.
Различаются вроде бы незначительно, однако результаты вполне могут расходиться.
Но не дождавшись адекватного отклика, помещаю решение сюда: http://files.rsdn.ru/42164/dlgbox_under.zip .
В примере — DialogBox (с закомментированным в исходнике вариантом), но аналогично и для обычного окна.
Для вывода окна из-под стола достаточно клика по столу, — особенность безбсодового запуска под стол
Проверено на XP.
---
Парадоксальность же вот в чем: для запуска ПОД стол обязательно наличие WS_EX_TOPMOST.
Вроде бы обязательно.
Здравствуйте, kero, Вы писали:
K>А знаете — за это сообщение вам отдельное спасибо, кроме шуток. Еще бы узнать про Win98 (не виртуалку)... K>Хотелось бы проверить предположение, что организация Z-order с тех пор не менялась.
Мы решали одну проблему с htmlayout и диалогами в конторе у которой есть оффициально исходники Windows.
Код вокруг диалогов и их модальности датирован вообще 91 годом или около того. Ядро во всяком случае.
Если они руководствуются принципом "работает — не трогай" (а похоже что это так), то я думаю что проблема вообще изначальная.
"Microsoft Security Bulletin MS10-032 — Important
Vulnerabilities in Windows Kernel-Mode Drivers Could Allow Elevation of Privilege (979559)
Published: June 08, 2010"
(Win32k Window Creation Vulnerability — CVE-2010-0485) http://www.microsoft.com/technet/security/bulletin/ms10-032.mspx
Здравствуйте, kero, Вы писали:
S>>+W7 x64. K>Спасибо за отклик! K>Да, мрачно-занятная складывается картинка ...
Ну ониж с нуля семёрку писали, а тут спалились
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]