Архив

Posts Tagged ‘driver’

Как вручную добраться до user mode стека в windbg


Думаю каждый сталкивался с вот такой картиной:

        93b35d38 badb0d00 ntdll!KiFastSystemCall+0x3 (FPO: [0,0,0])
WARNING: Frame IP not in any known module. Following frames may be wrong.

И дальше нет колстека или какой-то мусор. Стек не распарсился, и дальше ядра строиться не хочет. А вызов пришел из ring-3 и нужно позарез узнать стек.
Тег «Далее»

Рубрики:Программирование Метки: , ,

Особенности хуков SSDT


По-моему нет ничего более банального, чем хучить API ядра через патч таблицы сервисов. Все это делали 100 раз, и вот на 101 раз выясняется, что есть особенности.
Тег «Далее»

Об именах процессов в ядре


Каждый кто писал драйвера для Windows сталкивался с потребностью фильтрации чего-либо по имени процесса. И вот тут начинаются свистопляски, потому что нет нормального документированного способа получить имя процесса в ядре.
Тег «Далее»

Как работает обработчик сискола в Windows


Все вроде бы понимают, как происходит переход из ring-3 в ring-0 но никто не рассказывает детально.
Тег «Далее»

Совсем удаленная отладка драйверов или safe mode — наше все.

17 марта, 2010 3 комментария

Вспоминается анекдот-загадка:
Сколько нужно программистов чтобы вкрутить лампочку?
Ответ: Ни одного. Программисты не решают апаратные проблемы.

С удаленной отладкой примерно также: сколько нужно компьютеров, чтобы удаленно отлаживать драйвера? Ответ: три.

Почему 3, а не 2? Да потому что, если это настоящая удаленная отладка, то драйвер выполняется на машине у клиента, а вы конектитесь на еще одну удаленную машину, которая через COM или Firewire подключена к первому. Итого: 2 компа у клиента, и один у вас.

Но это мечта программиста, в реальности обычно используется 2:

1) ваш, на котором «все работает»

2) комп клиента, на котором все не работает.

Как же с этим жить и успешно фиксить баги?
Тег «Далее»

Рубрики:Программирование Метки: ,