Экран смерти и драйвера

Тема в разделе "WASM.ASSEMBLER", создана пользователем dnmax, 24 ноя 2004.

  1. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    Не обходимо написать софтину которая по определённым условиям выбросит машину в синий экран, покопавшись в мсдн нашёл следующее



    KeBugCheck

    The KeBugCheck routine brings down the system in a controlled manner when the caller discovers an unrecoverable inconsistency that would corrupt the system if the caller continued to run.



    VOID

    KeBugCheck(

    IN ULONG BugCheckCode

    );



    Parameters

    BugCheckCode

    Specifies a value that indicates the reason for the bug check.



    Return Value



    None

    Headers



    Declared in ntddk.h. Include ntddk.h



    Насколько я понял её надо вызвать из уровня ядра внимание вопросы:

    1. Как это сделать проще(без написания драйверов) из си,делфи,asm etc

    2. Где взять ddk бесплатно(не бейте ногами но сразу не нашёл)



    Заранее благодарен за коментарии,посылания,бан.



    ЗЫ Если кто поможет написать програмульнку несложного сожержания а именно

    Стартует читает из файла последнюю дату загрузки и количество дней до синего экрана, прописывает назад данные если дата изменилась то уменьшает количество дней на 1 и дату меняет на текущую( в том случае если дата выше предыдущей) если ниже то обнуляет значения дней до нуля если дней осталось ждать не ноль то завершает свою работу если 0 то ждёт 30 минут и вываливает систему в синий экран

    (если мона с исходами)

    Заранее благодарен

    Или как проще самому такое написать
     
  2. ipse

    ipse New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2004
    Сообщения:
    8
    Триал пишеш? Жестко...
     
  3. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    господа а без флейма можно помочь? или напрвить как из сяйника асма нешарящаму праграмеруму перейти из левела 3 на 0 и выполнить KeBugCheck по возможности без написания дровов или как легально вызвать синий экран програмно заранее благодарен
     
  4. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Легально из 3 в 0 без драйвера никак.
     
  5. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    1. хорошо минимальный пример драйвера который сработает в моём случае?(что нибудь типа хелло ворд)(желательно чтобы пускалось от 2к до 2к3)

    2. где же всё таки взять библиотеки ддк?

    3. существует ли возможность из драйвера работать с файловой системой?



    Заранее благодарен

    (я понимаю что лезу с минимальными знаниями но очень надо :)
     
  6. 90210

    90210 New Member

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    16
    Адрес:
    somewhere from Russia
    В синий экран можно вывалить и из r3 с помощью NtRaiseHardError(). Его использует csrss когда показывает STATUS_SYSTEM_PROCESS_TERMINATED.

    Смотри csrsrv.dll!CsrUnhandledExceptionFilter.
     
  7. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    о это то что доктор прописал по крайней мере по описанию, ща будем изучать
     
  8. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    dnmax


    Во, тестируй Ж)
    Код (Text):
    1. ;========================================
    2. format      PE native 4.0
    3. include     "%fasminc%/win32a.inc"
    4. ;========================================
    5. proc        start,object,regpath
    6.             invoke  KeBugCheck,0DEADDEADh
    7.             mov     eax,0C0000182h
    8.             return
    9. endp
    10. ;========================================
    11. data        import
    12. library     kernel,'ntoskrnl.exe'
    13. import      kernel,KeBugCheck,'KeBugCheck'
    14. end         data
    15. data        fixups
    16. end         data
    17. ;========================================
     
  9. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    вопрос опять возникает где взять ntdll.lib и всё что к нему прилагается
     
  10. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    KmdKit на сайте, в нем есть и .lib и .inc Только эта ерунда для слабонервных KeBugCheck показывает адрес ошибки, где произошел сбой => пропатчить это можно без проблем. К тому же после вызова диск останавливается и пользовательские данные не сброшеные из кэша на диск теряются :) Для триальной версии программы это "крах" Лучше подумай, что тебе важнее в программе "насолить" или "сделать как надо"
     
  11. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    вопрос а как по твоему надо?



    да мне в принципе фиолетово что он там не сохранил сама микрософт идёт этим путём(как пример офицальный 2003 сервер с ограничением срока использования через 180 дней предупреждает что перезагрузится через n минут а перезагружается +-5 минут они то не сильно заботятся мне тогда зачем надо) но это всё флейм а есть ли в природе ntdll.h за ранее благодарен
     
  12. SteelRat

    SteelRat New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2004
    Сообщения:
    409
    Ну, как хочешь, моё дело предупредить :) оставь мыло, вышлю, у меня DDK от XP
     
  13. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    dnmax(злая собака)nm.ru

    если мало места могу дать ftp или рабочий мыл размер тока скажи
     
  14. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    2bogrus

    хорошо а как загрузить энтот драйверок?

    полученый sys заранее благодарен
     
  15. dnmax

    dnmax New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2004
    Сообщения:
    9
    да теперь вопрос уже по дровам и примеру который дал bogrus могу ли я из него читать писать в файлы, если да то пошлите меня на три весёлых справочника как это сделать в винде в 0 кольце поработать с файликом заранее благодарен
     
  16. _Juicy

    _Juicy Active Member

    Публикаций:
    0
    Регистрация:
    12 авг 2003
    Сообщения:
    1.159
    Адрес:
    SPb
    Прошу прощения, а нафига KeBugCheck?

    Разве в нулевом кольце не хватит

    xor eax,eax

    mov [eax],eax ?
     
  17. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    А нафиг вообще нулевое кольцо???

    Шатдаунить winlogon или один из тех() и все...

    Никаких мучений с KeBugCheck и драйвером.
     
  18. vinnie_pooh

    vinnie_pooh New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    98
    Если я не ошибаюсь, то программа, проверяющая условие: (нужно ли вызывать BSOD) является пользовательской и сама может записать отчет в файл до BSOD'а.



    KeBugCheck - это, несомненно, наиболее непосредственный способ, о котором я не знал до прочтения Соломона-Руссиновича, но проще будет способ

    xor eax,eax

    mov [eax],eax

    о котором я унал по прочтении Four-F :)
     
  19. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    dnmax



    Я тебе даже 4 дам:



    1) Google

    2) MSDN

    3) WASM.RU

    4) сюда



    На сайте есть уникальный и очень хороший цикл статей по разработке драйверов. Прочти, не ленись. Иначе из пункта 4 не выйти тебе…
     
  20. nobody

    nobody New Member

    Публикаций:
    0
    Регистрация:
    8 сен 2004
    Сообщения:
    32
    Адрес:
    Afghanistan
    Синий экран из режима пользователя можно сделать через NtDisplayString