WP-bit

Тема в разделе "WASM.WIN32", создана пользователем Maveric, 3 сен 2007.

  1. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    может стоит повысить IRQL до HIGH_LEVEL? в регистре TPR все прерывания замаскируются..
     
  2. Agent666

    Agent666 New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    98
    Great
    А нафига? Аффтар вроде не ставил задачу маскировать прерывания на всех процессорах.
    Может быть перед ответом стоит иногда читать содержимое топика?
     
  3. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Мужчины, не надо кипятиться.
    Уточняю, мне требуется чтобы код выполнился на том самом процессоре где был сброшен WP-bit. Работа с данными из различных потоков отсутствует.
     
  4. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Если на другом процессоре возникнет прерывание, выполнится ISR - код в которой сможет писать аналогично твоему коду.
     
  5. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    ECk
    Поподробнее, что имеел в виду ?
     
  6. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Сорри, запутался малость - все верно получается, если CLI у тебя на данном процессоре и WP сброшен в cr0 твоего процессора, писать можно будет на твоем процессоре.
     
  7. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    А есть еще другой вариант. Автор же не написал, что за код изменяется. Если этот код может выполняться в момент модификации, то это вариант для сбоя №1. Допустим, код расшифровываем свой - тогда cli/sti действительно защитит - ведь мы монопольно владеем памятью. Второй вариант для сбоя - модифицированный код попал в кеш. После возвращения из DriverEntry может случится исполнение этого кода на другом процессоре и тоже из кеша ( уже другого ). Результат - исполнение процессором мусора и BSOD.
     
  8. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    так... код модифмцмруется задолго до использования
     
  9. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    а по стеку не понятно в чем дело? driver verifier включали? Скорее всего, ошибка банальная - например, когда расшировывали код переполнили буфер.
     
  10. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    2TarasCo
    понимаешь, не всегда дрова вылетают. я думаю что-то с ирпами накосячил. по стеку сложно, т.к. софтайса нет, а windbg мне не помощник, т.к. у меня дравер последовательного порта :)
     
  11. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Maveric
    а как же анализ крешдампа?

    зы. виндбг умеет не только через COM дебажить..
     
  12. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Great
    я пробовал локально дебажить, он драйвер com-порта не грузит :dntknw:
    и крэш не создаёт... видимо, потому что я с драйвером диска работаю :)
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    локально с windbg это как?

    Причин может быть много... файла подкачки может быть недостаточно, либо его нет вообще, либо он расположен не на системном диске (где каталог Windows лежит).
    Насчет драйвера диска - а че ты с ним делаешь то?
     
  14. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    локально можно начиная с winxp. в boot.ini добавляешь ключ /debug - тогда отладчик грузится с системой. а в виндбг выбираешь file->kernel debug, а затем local.
    а с драйвером диска работаю чтобы получить его параметры такие как serial number и model.
     
  15. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    а ну это вряд ли причина отказа в записи крешдампа
    и много можно так надебажить? чтото я сомневаюсь что из юзермодного гуи можно отлаживать чтото ядерное.. надо глянуть будет
     
  16. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    так...
    - это не просто так. я так понимаю, что отладчик ядерный. а гуи просто фронтэнд.
     
  17. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Я тут походу накосячил... Создаю синхронный ирп и устанавливаю процедуру завершения. Это лишнее. А косяки могут быть из-за этого ?
     
  18. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Гы, а кто мешает обработчику послать #NMI на наш залоченный процессор?
     
  19. Maveric

    Maveric New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2004
    Сообщения:
    90
    Medstrax похоже оффтоп. но интересно как это сделать ?
     
  20. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Maveric
    LiveKd используй от Руссиновича, можно будет на живую все тестить без /debug