Как надежно "повесить" Win 9x/NT/XP

Тема в разделе "WASM.BEGINNERS", создана пользователем HelloWorld, 14 май 2006.

  1. HelloWorld

    HelloWorld New Member

    Публикаций:
    0
    Регистрация:
    6 май 2006
    Сообщения:
    4
    Как надежно "повесить" Win 9x/NT/XP?
     
  2. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Бесконечным циклом вывода сообщения "Hello World". Действует безотказно!
     
  3. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Пишешь библиотеку, грузишь ее через winlogon (как это сделать на форуме написано, воспользуйся поиком), так как у winlogon'а права system, то код, приведенный в аттаче будет офигенно тормозить систему (практически ничего нельзя будет сделать), и следствие - офигенно греть процессор. В принципе код написан "от балды", только используютя оба конвеера процессора, самые сложные и тормозные инструкции fpu.

    P.S. Я решил, что просто повесить систему - неинтересно. Интереснее, когда система работает, но так тормозит, что хоть волосы на голове рви...

    P.P.S. Если надо именно повесить систему, то можно в библиотеке сделать необработанное исключение (mov [0], eax), тогда систему выкинет в синий экран :)



    [​IMG] _634171239__FuckCPU.asm
     
  4. LOL

    LOL New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2006
    Сообщения:
    175
    Адрес:
    Russia
    В смысле "надёжно"?

    1. 9х - Поиск по шарам файла "con/con". Вешало даже удаленные тачки.

    2. 2k/XP - Ищи любой актуальный DoS :)

    Ну а надежней всего "повешивает" она сама саму себя :)))
     
  5. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    Для WinXP+ хватает пакета IGMP с полем длины = 0. Где-то есть эксплойт который отсылает такой пакетик и системе поможет тока резет... (Там вроде какой-то зацикл в драйвере)
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    SetProcessPriority(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);

    lab:

    goto lab;
     
  7. HelloWorld

    HelloWorld New Member

    Публикаций:
    0
    Регистрация:
    6 май 2006
    Сообщения:
    4




    Я этого не писал но чувствовал что хочу имеено так!
     
  8. Koshak

    Koshak New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2006
    Сообщения:
    31
    Адрес:
    Russia
    Сделать сервис, в нём цикл что-то типа

    int a;
    while(1){
    a=a+1;
    a=a+1;
    .....
    a=a+1;
    Sleep(1);
    }

    количеством операторов a=a+1; и параметром команды Sleep() подбираем величину торможения.
    Окромя сервиса можно ещё к винлогону прицепиться, как mix_mix предложил
     
  9. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    из под админа только, но реально работает. Как-то на базе винлирка писал прогу, там как раз приоритет поднимается чтоб с ирда читать - небольшая ошибка - система умерла. прикольно.
     
  10. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Думается простые вычислительные циклы не ахти как затормозят двухпроцессорные системы, включая HT, коих сейчас расплодилось не мерянно ;)) Тут видимо надо бы еще и системные ресурсы задействовать - к примеру, какой-нить MMF замутить гигов на 10 :lol:
     
  11. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    Еще одна проверенная техника на ХР SP1:

    Код (Text):
    1. int main()
    2. {
    3. ....
    4. CreateThread(..., ThreadProc, ...)
    5. ....
    6. }
    7.  
    8. DWORD WINAPI ThreadProc(LPVOID lpParam)
    9. {
    10.   while(true)
    11.   {
    12.     HDC hDC = GetDC(0);
    13.     CreateThread(..., ThreadProc, ...)
    14.   }
    15. }
    После создания нескольких тысяч тредов система бросала БСОД :)
     
  12. SiruS

    SiruS Алекс

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    145
    Адрес:
    Львов
    Пример с CreateThread под ХР СП2 не работает. Кол-во тредов доходит до 2024 и останавливаеться.
    Хотелось бы увидеть примерчик на IGMP.

    А 9х винду можно повесить вот так:
    Код (Text):
    1. cli
    2. jmp $
    И так, про всякий случай, что бы она не включилась в следующий раз, system.ini надо сделать более 64 кб в размере :)
     
  13. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    В теле треда возможно надо еще чегото порисовать, главное не делать ReleaseDC
     
  14. SiruS

    SiruS Алекс

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    145
    Адрес:
    Львов
    Bohdan200

    Я пробовал LineTo,hwnd,1,1, просидел 2 минуты, но ничего не произошло :dntknw:
     
  15. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    Обыдно... Знач дыру закрыли :)
    А БСОД с GetDIBits (или SetDIBits, не помню) тоже закрыли?
     
  16. SiruS

    SiruS Алекс

    Публикаций:
    0
    Регистрация:
    19 фев 2005
    Сообщения:
    145
    Адрес:
    Львов
    Bohdan200

    Я что-то слышал про эту дырку, но не видел примера как ею пользоваться
     
  17. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
  18. Crazy_Death

    Crazy_Death New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    16
    Код (Text):
    1. do
    2. {
    3. CreateProcess("My.exe")
    4. }
    5. while(1)
    Crtl - alt - del
    даже не помогет :)
     
  19. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Под win9x
    1) запустить debug.com
    2) o 0CF9 6 (короче вывести в порт 0CF9 число 6)
     
  20. _Raven

    _Raven New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2006
    Сообщения:
    34
    Код на Delphi:
    Код (Text):
    1. {$o-}
    2. uses windows;
    3. const
    4.   MAX_NUMB=1000000;
    5. var
    6.   bigmas:array[0..MAX_NUMB] of comp;
    7. begin
    8.   SetPriorityClass(GetCurrentProcess,REALTIME_PRIORITY_CLASS);
    9.   SetThreadPriority(GetCurrentThread,THREAD_PRIORITY_HIGHEST);
    10.   VirtualAlloc(nil,MAX_NUMB,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
    11.   while true do
    12.     begin
    13.       bigmas[random(MAX_NUMB)]:=(pi*ln(exp(3))/(ln(pi)))+cos(25.23)-sin(25.23);
    14.     end;
    15. end.
    Для ленивых бросил в аттач EXE-шник.