Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отладка драйвера на виртуальной машине. (нужна консультация)  (Прочитано 10656 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
monsteiree
Новенький

nl
Offline Offline

« : 10-11-2010 22:45 » 

Всех приветствую.
Возник вопрос с отладкой драйвера на виртуальной машине посредством windows debugging tools.
Собственно вопрос такой. Дебагер к виртуалке подключился, но как сделать прерывание в нужный момент - не могу понять.
Может нужно сам драйвер встраивать точку остановки (int 3)?
Заранее спасибо за помощь.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 10-11-2010 22:48 » 

попробуйте. скорее всего так)
правда забыл уже int1 или int3
PS по крайней мере в других отладчиках так было..
« Последнее редактирование: 10-11-2010 22:59 от Ochkarik » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
supermaxus
Участник

ru
Offline Offline

« Ответ #2 : 10-11-2010 23:13 » 

Если драйвер ваш, то сгодится вызов DbgBreakPoint в коде (фактически он вызывает int3). Только проверьте, что отладчик на связи, иначе bsod получите.
Записан
x64
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 11-11-2010 11:22 » 

Только проверьте, что отладчик на связи, иначе bsod получите.

Код:
BOOL
MyBreak ()
{
//
// Break into the debugger. We should do this
// only if kernel-mode debugger is attached now.
//

if (*KdDebuggerEnabled)
{
DbgBreakPoint ();
return TRUE;
}

//
// Debugger is not enabled.
//

return FALSE;
}
Записан
monsteiree
Новенький

nl
Offline Offline

« Ответ #4 : 11-11-2010 14:39 » 

Всем спасибо.
Буду пробовать.

Добавлено через 3 дня, 16 часов, 25 минут и 19 секунд:
В процессе ковыряния возник еще один вопрос, прошу совета.
В патченом драйвере не может открыть, реестр чтобы прочитать подставляемые значения вместо \DosDevices\C .
Разница в том, что оригинальные ключи лежат в hklm\system, а подставные -  в hklm\software, и попытка вычитать эти данные происходит при старте винды (когда прогресс загрузки винды идет).
Как можно узнать есть ли доступ к той части реестра из драйвера при загрузке винды?
« Последнее редактирование: 15-11-2010 07:05 от monsteiree » Записан
x64
Участник

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 15-11-2010 11:53 » new

Ничего не понял, опиши задачу подробнее.
Записан
monsteiree
Новенький

nl
Offline Offline

« Ответ #6 : 15-11-2010 17:45 » 

Вопрос в том, есть ли из драйвера доступ ко всему реестру на этапе загрузки винды, или доступна только ветка HKLM\System.
Потому что из дебаггера проверил - HKLM\System\MountedDevices открывается, а HKLM\Software\ - нет, возвращает ошибку С0000034.
Я так думаю те, кто писал дрова должны знать это дело, подскажите как быть. Улыбаюсь
Записан
sss
Специалист

ru
Offline Offline

« Ответ #7 : 17-11-2010 03:22 » 

monsteiree, вирусы пишем, да...
Записан

while (8==8)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines