codeprojectddx Ответов: 1

Снова синий экран : usbhub! Usbhhubprocesschangeworker+ЕС


У меня есть отлаженный файл минидампа . У меня есть некоторые проблемы . Windbg предоставляет мне информацию ниже:
CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

BUGCHECK_STR:  0xFE

PROCESS_NAME:  System

CURRENT_IRQL:  0

LAST_CONTROL_TRANSFER:  from fffff88005a12a60 to fffff80004293bc0

STACK_TEXT:  
fffff880`047fcad8 fffff880`05a12a60 : 00000000`000000fe 00000000`00000008 00000000`00000006 00000000`0000000a : nt!KeBugCheckEx
fffff880`047fcae0 fffff800`0458a1d3 : fffffa80`0867e050 00000000`00000001 ffffffff`dc3a58a0 fffff800`044392d8 : usbhub!UsbhHubProcessChangeWorker+0xec
fffff880`047fcb40 fffff800`0429d261 : fffff800`00000000 fffffa80`00000001 fffff800`0424c200 fffff800`00000000 : nt!IopProcessWorkItem+0x23
fffff880`047fcb70 fffff800`045302ea : 00000000`00000000 fffffa80`06a0b040 00000000`00000080 fffffa80`069ef990 : nt!ExpWorkerThread+0x111
fffff880`047fcc00 fffff800`042848e6 : fffff880`04565180 fffffa80`06a0b040 fffff880`0456ffc0 00000000`00000000 : nt!PspSystemThreadStartup+0x5a
fffff880`047fcc40 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x16


STACK_COMMAND:  kb

FOLLOWUP_IP: 
usbhub!UsbhHubProcessChangeWorker+ec
fffff880`05a12a60 cc              int     3

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  usbhub!UsbhHubProcessChangeWorker+ec

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: usbhub

IMAGE_NAME:  usbhub.sys



проблема заключается в коде :
FOLLOWUP_IP: 
usbhub!UsbhHubProcessChangeWorker+ec
fffff880`05a12a60 cc              int     3

используя IDA Pro ,я получил код assebmle и, очевидно, код в местоположении
UsbhHubProcessChangeWorker+ec
допустимо и не прерывается int . Здесь он дает int ,почему ? что это значит ?

Что я уже пробовал:

Отладьте минидамп в windbg и получите некоторую информацию

1 Ответов

Рейтинг:
0

Jochen Arndt

Цитата:
Здесь он дает int ,почему ? что это значит ?
INT (Interrupt) 3 вставляется отладчиками при установке точки останова. Как только это происходит, отладчик берет управление на себя и удаляет инструкцию INT 3, заменяя ее исходным кодом, чтобы разрешить продолжение отлаживаемого процесса.

[РЕДАКТИРОВАТЬ]
Цитата:
Но я не сделал точку останова, когда ОС работает .
Из книги внутреннее устройство Windows Марк Руссинович Часть 2 Э и др.:
Цитата:
В случае исключения STATUS_BREAKPOINT распаковка адреса подтвердит наличие инструкции точки останова. Инструкция процессора INT 3 называется инструкцией trap to debugger. Инструкция INT 3 при выполнении заставляет систему вызывать обработчик исключений отладчика ядра. Если к компьютеру подключен отладчик, система будет взломана.
0: kd>
u 92c70a78 
myfault+0xa78: 92c70a78  cc   int       3 
...
Точки останова обычно не должны появляться в розничных версиях драйверов устройств. С помощью команды lm иногда можно определить, для какой среды был выбран драйвер устройства. При компиляции драйвера для выпуска (и если он не переопределен разработчиком) устанавливается флаг, указывающий тип выпуска. При просмотре свойства File flags наличие слова Debug указывает на то, что драйвер был создан с использованием проверенной (или отладочной) среды.
[/РЕДАКТИРОВАТЬ]


codeprojectddx

Но я не сделал точку останова, когда ОС работает .