Уязвимость с PostThreadMessage. Позволяет убить любой системный процесс\etc с самыми низкими привилегиями пользователя. Упарился уже искать баг в своем коде. Народ скажите сразу прокатит ли она с процессами у которых нет окна? Теоретически должна, но из-за того, что моя прога не работает пока что, я стал сомневаться в этом.
По идее очередь есть у процесса-потока, если он GDI. Когда у процесса в импорте есть библиотека gdi32.dll, то он становится таким автоматически (уже при её инициализации), если и user32 в процессе нету (gdi32 у него в импорте), то твоя посылка PostThreadMessage может вернутся типа invalide thread handle
Кста, почитай MSDN <ul type=disc><li>Call PostThreadMessage. If it fails, call the Sleep function and call PostThreadMessage again. Repeat until PostThreadMessage succeeds. <li>Create an event object, then create the thread. Use the WaitForSingleObject function to wait for the event to be set to the signaled state before calling PostThreadMessage. In the thread to which the message will be posted, call PeekMessage(&msg, NULL, WM_USER, WM_USER, PM_NOREMOVE) to force the system to create the message queue. Set the event, to indicate that the thread is ready to receive posted messages. </ul> з.ы. а уязвимость в чем? PostThreadMessage(WM_QUIT) ?
http://www.securitylab.ru/tools/40612.html а насчет зацикливания интересная мысль, чего то не заметил, надо попробовать.
NoName А то что уязвимость датированна октябрем 2003 года не смущает ? Неужели microsoft не пофиксил ?
Очередь есть всегда, но она вполне может не обрабатываться. Тем более когда нет окон в очереди совсем немного сообщений.