Терпел и больше не могу ) Ставлю хуки на INT1 и INT3 в IDT. Новый обработчик (упрощённо) пишет с лог через DbgPrint и передает управление старому обработчику. Все вроде бы хорошо, но иногда возникает НЕЧТО странное.. Иногда загружаешь драйвер и все ок, записи в логе появляются если там оттрейсить например ченить в ольке, и т.п... А иногда если загрузить драйвер, лог пополняется такими вот записями: Каждая запись лога содержит CS:EIP возврата (из стека), DPL сегмента CS (CS - из стека) и регистр задачи TR. Таких строчек в логе появляется очень много. Неужели винда сама себя отлаживает? Судя по логу, там код вида for(; __asm int 3; Это же бред =) Откуда эти записи... Причем DPL=0 и EIP из системных адресов. Почему в ядре возникают отладочные события то.. ЗЫ. Проверял и на варе и на реальном компе.. ЗЫЫ. Там лежит инструкция MOV EBP, ESP - пролог какой-то функции, она не экспортируется
Добавил показ PsGetCurrentProcessId(): (это уже лог с реального компа, тот был с вмвари). Процессы с этими идами - svchost, winamp, qip. Связи нет=\
Такая мысль: может ктонить ставит так оригинально сплайсинг на сисколы винды? (0xCC) Хотя откуда берутся INT1 тогда не ясно... Антивирей, фаерволов нету. Any ideas... ?)
ктото хукоет, в обработчике int3 заменяет на int1 инструкию, возвращает управление, а в int1 обработчике восстанавливает оригинал, отрабатывает, ставит int3..