Прекращение работы зависшего драйвера

Тема в разделе "WASM.NT.KERNEL", создана пользователем SysProger, 12 июл 2008.

  1. SysProger

    SysProger New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    127
    Подскажите пожалуйста, как завершить работу драйвера, если он зациклился, например, таким образом:

    m1:
    jmp m1

    Функции ControlService(sc_s, SERVICE_CONTROL_STOP, NULL) и ControlService(sc_s, SERVICE_CONTROL_SHUTDOWN, NULL) не помогают.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Грохнуть этот поток
     
  3. SysProger

    SysProger New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    127
    А как можно определить поток запущенного сервиса из программы-стартовщика?
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Из r3 ты r0 поток не грохнешь
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    2FED
    Легко.
     
  6. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Как?
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Спроецирую физиклмемори с доступом на запись и чтение, а там запишу чтонибудь в ядро.
     
  8. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    К стати в висте остался доступ PhysicalMemory?
     
  9. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Пора бы уже забыть об этом "архаизме":

    1. Этот способ палят все, кому не лень и орут благим матом, пугая при этом честных юзверей. :)
    2. В Висте не прокатит.
     
  10. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    Только из ядра.

    Закати на поток Kernel-Mode APC (или Special Kernel Mode APC если поток в KeEnterGuardedRegion). В APC:
    1) считываешь контекст (таким же методом как и ф-ции ядра), патчишь
    2) ИЛИ, зная, что код именно EBFE (jmp $), и где он, просто считывается, патчишь его.
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    А PsSetContextThread чем плох уже интересно?
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Twister
    Так загрузка любого драйвера палят все, причём тут это непонятно. В висте прекрасно работает.
    У меня уже сложилась такая установка как видимо и у тебя, а именно чтобы я не писал не должно палицца ничем, хоть даже какойнибудь текстовый редактор, а это начало сдерживать..
     
  13. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    Именно и так я имел в виду. Извините что не понятно написал, но здесь смысль считки контекста для того чтобы убидиться что поток именно в цикле находится (sanity check).
     
  14. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Clerk
    Я не про то, чтоб проникнуть в ринг0 незамеченым, а про то, что используя для этого недокументированные возможности, мы рискуем в итоге или обломиться, или напугать юзверя. Я, к примеру, предпочту грузить драйвер, нежели лезть черт знает куда через ФизикалМемори...
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Twister
    А я предпочитаю вместо того чтобы грузить драйвер чтобы исполнить сотню байт в режиме ядра использовать физиклмемори.