Странности отладочных прерываний

Тема в разделе "WASM.NT.KERNEL", создана пользователем wasm_test, 27 мар 2007.

  1. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Терпел и больше не могу )
    Ставлю хуки на INT1 и INT3 в IDT.
    Новый обработчик (упрощённо) пишет с лог через DbgPrint и передает управление старому обработчику.
    Все вроде бы хорошо, но иногда возникает НЕЧТО странное..
    Иногда загружаешь драйвер и все ок, записи в логе появляются если там оттрейсить например ченить в ольке, и т.п...
    А иногда если загрузить драйвер, лог пополняется такими вот записями:
    Каждая запись лога содержит CS:EIP возврата (из стека), DPL сегмента CS (CS - из стека) и регистр задачи TR.
    Таких строчек в логе появляется очень много.
    Неужели винда сама себя отлаживает? Судя по логу, там код вида for(;;) __asm int 3;
    Это же бред =) Откуда эти записи...
    Причем DPL=0 и EIP из системных адресов. Почему в ядре возникают отладочные события то..

    ЗЫ. Проверял и на варе и на реальном компе..
    ЗЫЫ. Там лежит инструкция MOV EBP, ESP - пролог какой-то функции, она не экспортируется
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Добавил показ PsGetCurrentProcessId():
    (это уже лог с реального компа, тот был с вмвари).

    Процессы с этими идами - svchost, winamp, qip. Связи нет=\
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Такая мысль: может ктонить ставит так оригинально сплайсинг на сисколы винды? (0xCC)
    Хотя откуда берутся INT1 тогда не ясно...
    Антивирей, фаерволов нету.

    Any ideas... ?)
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    ктото хукоет, в обработчике int3 заменяет на int1 инструкию, возвращает управление, а в int1 обработчике восстанавливает оригинал, отрабатывает, ставит int3.. :)