| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | «  : 09-10-2008 08:10 »  |  | 
 
 Льюди, просто написан драйвер, откомпилирован, теперь запускать его - и Ох, не работает BSOD появляется. Что делать. Наверно перед тем как запускать драйвер нужно как-то все ошибки наладить как обыно сделали для Обычных приложений - как в VC studio, Turbo C, .... Я вижу только Checked build, Free build....,или PC - PC Debug, а польного чего - то для откомпиляции нет - ту.
 Вы знаете какие инструменты использовали для откомпиляции ?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #1 : 09-10-2008 08:30 »  |  | 
 
 используйте отладчик режима ядра. напрмример на сайте microsoft-а в свободном скачивании.в драйвере используйте DbgPrint() для вывода отладочных сообщений.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| DeeoniS 
								Интересующийся    Offline | 
								|  | « Ответ #2 : 09-10-2008 11:30 »  |  | 
 
 Плюс к вышесказанному отлаживать надо на другой машине, можно на VMware |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #3 : 09-10-2008 14:40 »  |  | 
 
 DeeoniS, к сожалению.но если не изменяет память был LiveKD.
 впррочем я его ни разу не использовал... равно как и winDbg)
 *вздыхая по SoftIce...*
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| DeeoniS 
								Интересующийся    Offline | 
								|  | « Ответ #4 : 09-10-2008 17:39 »  |  | 
 
 Ochkarik, ну мне кажется это больше не к сожалению, а к счастью    Как-то спокойней свеженапрограммированный драйвер тестировать и отлаживать на другой машине. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #5 : 09-10-2008 19:01 »  |  | 
 
 ну... согласен) хотя я на одной все делаю обычно. первые пол года видел синий экран раз 20 на дню) я тогда еще не умел документацию от майкрософта читать))) а сейчас обычно и отладчик не сильно нужен. |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #6 : 10-10-2008 14:13 »  |  | 
 
 Видно, что самый подходяций для компиляции метод - это испольлзование два КПа. А для того чтобы на одной машине хорошо откомпилировать, то нужно сидеть и 20 раз в день перезагружить КП. Но плюс еще надо понимать, что в зтом мертвом экране вывещено.Как можно понимать эти выведенные строчки, кто - то мене может показать ?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #7 : 10-10-2008 14:17 »  |  | 
 
 Между прочим у меня есть WinDbg но использовать его для компиляции не знаю как. Просто вижу там какие - то меню с строчки.... Вообще если напиман Драйвер (исходный или .sys файл) что делать для откомпиляции. Документацию читал но мало что - практически понятно. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #8 : 10-10-2008 15:54 »  |  | 
 
 WinDbg не используется для компиляции.он используется для отладки скомпилированного драйвера.
 для компиляции(сборки драйвера) используется либо VS студия, либо make-файлы как в DDK. (точнее сам компилятор cl.exe)
 как использовать - пробовал, мне не понравилось. уже все забыл)
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #9 : 11-10-2008 01:10 »  |  | 
 
 Хорошо, но для отладки если не опытный программист. Отладка - тоже проблема. Все равно нужно два КП ? и DDK tools, WinDbg или   такие же. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #10 : 11-10-2008 15:17 »  |  | 
 
 buisyhanh, LiveKD поищите. на одном ПК. кажется он поможет.
 
 SoftIce - точно можно на одном ПК, но он два года назад перестал обновляться.
 если ПК старый - подойдет SoftIce. им удобно железо отлаживать.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| Vlaor 
								Гость
 | 
								|  | « Ответ #11 : 12-10-2008 11:14 »  |  | 
 
 Желательно подключить к отладчику отладочные символы, просто в ассемблерном коде утонешь. Не знаю платные они или нет. Для XP SP1 вроде было бесплатно. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #12 : 12-10-2008 16:29 »  |  | 
 
 Vlaor, ну как сказать... не ядро же отлаживать) а свой код в дебаге отображается. на Си. но вообще не помещает конечно)  |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #13 : 13-10-2008 03:26 »  |  | 
 
 Нашел я статью обо дебагге с использованием VMWare :http://catch22.net/tuts/vmware Но на степ 4 - непонятно где поставить команд (в cmd.exe) или (Windbg - и как ?). Я попробовал на cmd     windbg -b -k com:pipe,port=\\.\pipe\com_1,resets=0 результат такой: 'windbg' is not recognized as an internal or external command, operable program or batch file.  Кто - то мог наладить такой тип дебаг ? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| sss 
								Специалист    Offline | 
								|  | « Ответ #14 : 13-10-2008 05:02 »  |  | 
 
 buisyhanh, как создавал ярлык? Найди windbg с помощью explorer. Создай ярлык.  Затем в свойствах ярлыка исправь "C:\xxx\windbg.exe" на "C:\xxx\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0
 У меня, windbg установлен вот где -> "C:\Program Files\Debugging Tools for Windows\windbg.exe"
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
  while (8==8)  |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #15 : 13-10-2008 06:00 »  |  | 
 
 buisyhanh, как создавал ярлык? Найди windbg с помощью explorer. Создай ярлык.  Затем в свойствах ярлыка исправь "C:\xxx\windbg.exe" на "C:\xxx\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_1,resets=0
 У меня, windbg установлен вот где -> "C:\Program Files\Debugging Tools for Windows\windbg.exe"
 
 
 Спасибо sss, с исправлением, запускается Windbg, но еще такой вопрос: если запускать windbg после запуски WinXP в WMWare то - занято com_1, если после этого то уменя появится такой экран: |  
						| 
								| 
 
										 01.jpg  (119.11 Кб - загружено 971 раз.)
									 |  
								| « Последнее редактирование: 20-10-2008 09:09 от Ochkarik » |  Записан | 
 |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #16 : 13-10-2008 06:01 »  |  | 
 
 Это ошибки или нет ? Что делать для начала дебаг ? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #17 : 13-10-2008 07:58 »  |  | 
 
  Hу люди, что я установил не правильно а ? windbg выдает мне такой тескт.--------------------------------
 Microsoft (R) Windows Debugger Version 6.9.0003.113 X86
 Copyright (c) Microsoft Corporation. All rights reserved.
 
 Opened \\.\pipe\com_1
 Waiting to reconnect...
 Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
 Kernel Debugger connection established.  (Initial Breakpoint requested)
 Symbol search path is: C:\Windows\Symbols
 Executable search path is:
 *** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe -
 Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
 Built by: 2600.xpsp_sp2_rtm.040803-2158
 Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055c700
 System Uptime: not available
 Break instruction exception - code 80000003 (first chance)
 *******************************************************************************
 *                                                                             *
 *   You are seeing this message because you pressed either                    *
 *       CTRL+C (if you run kd.exe) or,                                        *
 *       CTRL+BREAK (if you run WinDBG),                                       *
 *   on your debugger machine's keyboard.                                      *
 *                                                                             *
 *                   THIS IS NOT A BUG OR A SYSTEM CRASH                       *
 *                                                                             *
 * If you did not intend to break into the debugger, press the "g" key, then   *
 * press the "Enter" key now.  This message might immediately reappear.  If it *
 * does, press "g" and "Enter" again.                                          *
 *                                                                             *
 *******************************************************************************
 *** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe -
 nt!DbgBreakPointWithStatus+0x4:
 8052a5d8 cc              int     3
 ----------------------------------------
 
 а по этой статьи :http://www.wd-3.com/archive/RemoteDbg.htm
 
 То нужно как-то установить еще symbols file of Driver (.pdb) сгенерированные при компиляции драйвера. Eсли так то как  правильно?
 
 - Я на писал драйвер, который связывает клавиатуру с приложением. А как через Windbg и
 WMware отладить его. Причем при динамической запуске драйвера  - сразу BSOD. Что делать ?
 
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| sss 
								Специалист    Offline | 
								|  | « Ответ #18 : 15-10-2008 05:25 »  |  | 
 
 buisyhanh, это реакция на точку останова int 3 в адресе 8052a5d8. Что бы продолжить выполнение нажми  g и enter (написано же!).  Вообще, тебе надо почитать чего нибудь по этим темам.   |  
						| 
								|  |  
								|  |  Записан | 
 
  while (8==8)  |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #19 : 20-10-2008 07:41 »  |  | 
 
 Cпасибо, я исправил все и запустил в норме все но я нашел кое что хорошенкое обо kernnel hook keyboard interrupt. Но по сути дела не работает, проблему не нашел - кто может ? |  
						| 
								| 
 |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #20 : 20-10-2008 09:12 »  |  | 
 
 Keyboard Sniffer.c - судя по всему очень похоже на рабочий пример...но за "KeStallExecutionProcessor(666);" руки отрывать надо.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #21 : 20-10-2008 10:49 »  |  | 
 
 Что за руки отрывать надо ? не пойму. Ну хоть бы пример я запускал драйвер ручно получает иформацию обо ИДТ и замена kbd Interrupt Vector но не получаю символы, которые я набирал после запуски. По логике то Эти символы должны выводиться после выгружки драйвера.Вы пробовали запускать его ?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #22 : 20-10-2008 11:40 »  |  | 
 
 запускать не пробовал - времени жалко...по коду - идея понятна, запустить можно за сутки, если скрытых ошибок нет.
 
 да, перед выгрузкой выводятся первые 1024 введенных символа. должны быть.
 если клавиатура PS/2 а не USB)))))))))))
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #23 : 20-10-2008 12:30 »  |  | 
 
 запускать не пробовал - времени жалко...по коду - идея понятна, запустить можно за сутки, если скрытых ошибок нет.
 
 да, перед выгрузкой выводятся первые 1024 введенных символа. должны быть.
 если клавиатура PS/2 а не USB)))))))))))
 
  Что там за сутки запуск, просто запускать с помощью программной установки. PS понятно, но нечего не выводииться и дебаг сделал с помощью VM и РС.   Ну идея есь идея но что там не работает коректно, что при ввода символов новый ISR не запускается.  Я сделал тест но получиться только замена вектор прервания и все. Дальше не чего на происходить.   Может кто-то обьяснить ? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #24 : 20-10-2008 12:45 »  |  | 
 
 у вас клавиатура какая? |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #25 : 20-10-2008 15:39 »  |  | 
 
 У меня PS/2 клавиатура точно, так как сейчас напушу драйвер для работы с ним. На счет точное условие что требует в коде не беспокоится. Только где то не корректный подход использован в этом исходнике.Когда Дебаг пойдет то выводятся все адрессы ИДТ и происходила замена ИДТ. Но после этого не чего больше нет. По идеи - это ошибка из за того, что не подключается к прерыванию наш драйвер.
 Что - то там еще надо делать ?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ochkarik | 
								|  | « Ответ #26 : 20-10-2008 16:16 »  |  | 
 
 раскоментируйте все DbgPrint.пришлите лог отладочных сообщений.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 RTFM уже хоть раз наконец!     :[ ну или хотя бы STFW ... |  |  | 
	| 
			| 
					
						| buisyhanh 
								Постоялец    Offline | 
								|  | « Ответ #27 :  21-10-2008 01:29 »   |  | 
 
 Думаю проблема не бубет решена из - за прерывание не вызывает наш драйвер, этот механизм как-то не правильно работает или не может работать.  Отрекомментировка не дает ничего.Есть другой смысль.
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |