Помогите определить причину BSOD

Тема в разделе "WASM.NT.KERNEL", создана пользователем Marik, 6 фев 2008.

  1. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Доброго времени суток, уважаемое сообщество васма!!!
    Собственно сабж. есть драйвер, который перехватывает в системе некоторые другие драйвера,(включая драйвера сетевых интерфейсов) заменой их MajorFunction. Есть сервис bestClient.exe который управляет драйвером. Все работает вроде хорошо, но при долгой работе без перезагрузки начинается что то непонятное :dntknw:( Вообщем случилось самое худшее, при перезагрузки сервиса (а следовательно и драйвера) вылетел BSOD Код ошибки 000000be (ATTEMPTED_WRITE_TO_READONLY_MEMORY). Виновником на экране был ndis.sys. Сам ndis.sys я не хучу, но так или иначе видимо повлиял :dntknw: Опыта анализа крэшдампа к сожалению большого нет, поэтому и прошу помочь научится анализировать крэшдамп. В стеке вызовов драйверов процедуры из моего драйвера я не нашел, и не понимаю как смог мой драйвер вызвать BSOD. Повторно вызвать эту ошибку не могу, а вот определить причину глюка очень нужно
    Код (Text):
    1. 0: kd> !analyze -v
    2. *******************************************************************************
    3. *                                                                             *
    4. *                        Bugcheck Analysis                                    *
    5. *                                                                             *
    6. *******************************************************************************
    7.  
    8. ATTEMPTED_WRITE_TO_READONLY_MEMORY (be)
    9. An attempt was made to write to readonly memory.  The guilty driver is on the
    10. stack trace (and is typically the current instruction pointer).
    11. When possible, the guilty driver's name (Unicode string) is printed on
    12. the bugcheck screen and saved in KiBugCheckDriver.
    13. Arguments:
    14. Arg1: f80e7204, Virtual address for the attempted write.
    15. Arg2: 028b3121, PTE contents.
    16. Arg3: a944ec44, (reserved)
    17. Arg4: 0000000a, (reserved)
    18.  
    19. Debugging Details:
    20. ------------------
    21.  
    22.  
    23. PEB is paged out (Peb.Ldr = 7ffd700c).  Type ".hh dbgerr001" for details
    24.  
    25. PEB is paged out (Peb.Ldr = 7ffd700c).  Type ".hh dbgerr001" for details
    26.  
    27. DEFAULT_BUCKET_ID:  DRIVER_FAULT
    28.  
    29. BUGCHECK_STR:  0xBE
    30.  
    31. PROCESS_NAME:  bestClient.exe
    32.  
    33. TRAP_FRAME:  a944ec44 -- (.trap 0xffffffffa944ec44)
    34. ErrCode = 00000003
    35. eax=00000400 ebx=00000000 ecx=f80e71f4 edx=00000000 esi=811fdf14 edi=e573b648
    36. eip=80516434 esp=a944ecb8 ebp=a944ecc8 iopl=0         nv up ei pl nz na pe nc
    37. cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010206
    38. nt!MiRestoreTransitionPte+0x64:
    39. 80516434 ff4910          dec     dword ptr [ecx+10h]  ds:0023:f80e7204=8328478b
    40. Resetting default scope
    41.  
    42. LAST_CONTROL_TRANSFER:  from 8051f478 to 804f9c37
    43.  
    44. STACK_TEXT:  
    45. a944ebc4 8051f478 000000be f80e7204 028b3121 nt!KeBugCheckEx+0x1b
    46. a944ec2c 80543568 00000001 f80e7204 00000000 nt!MmAccessFault+0x9a8
    47. a944ec2c 80516434 00000001 f80e7204 00000000 nt!KiTrap0E+0xd0
    48. a944ecc8 80521703 81413dc0 0000003f 00000000 nt!MiRestoreTransitionPte+0x64
    49. a944ece0 80521d16 00000000 c0009f08 00000018 nt!MiRemovePageFromList+0xd1
    50. a944ecf8 8051f9a9 013e1000 00e51000 0012f9f4 nt!MiRemoveAnyPage+0xc8
    51. a944ed4c 80543568 00000001 013e1000 00000001 nt!MmAccessFault+0xed9
    52. a944ed4c 7c917c8c 00000001 013e1000 00000001 nt!KiTrap0E+0xd0
    53. WARNING: Frame IP not in any known module. Following frames may be wrong.
    54. 0012f9f4 00000000 00000000 00000000 00000000 0x7c917c8c
    55.  
    56.  
    57. STACK_COMMAND:  kb
    58.  
    59. FOLLOWUP_IP:
    60. nt!KiTrap0E+d0
    61. 80543568 85c0            test    eax,eax
    62.  
    63. SYMBOL_STACK_INDEX:  2
    64.  
    65. SYMBOL_NAME:  nt!KiTrap0E+d0
    66.  
    67. FOLLOWUP_NAME:  MachineOwner
    68.  
    69. MODULE_NAME: nt
    70.  
    71. IMAGE_NAME:  ntkrpamp.exe
    72.  
    73. DEBUG_FLR_IMAGE_TIMESTAMP:  41107b0d
    74.  
    75. FAILURE_BUCKET_ID:  0xBE_nt!KiTrap0E+d0
    76.  
    77. BUCKET_ID:  0xBE_nt!KiTrap0E+d0
    78.  
    79. Followup: MachineOwner
    80. ---------
     
  2. Marik

    Marik New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2006
    Сообщения:
    166
    Адрес:
    Russia
    Может ли сервис вызвать BSOD??? или все же только драйвер
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    только код ядра. код пользовательского режима может косвенно вызвать бсод в том случае, если это, например, код процесса CSRSS и процесс завершается с исключением. Тогда будет бсод CRITICAL_OBJECT_TERMINATION, но все равно сам бсод сгенерирует код ядра