# древний баг в виндах, plz протестируйте свою систему

Тема в разделе "WASM.HEAP", создана пользователем kaspersky, 9 май 2008.

  1. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    в общем subj. запустите make-all-and-run.bat и покажите свой log. особенно интересует XP, Висла, Server 2008, и разные виртуалки типа Virtual PC
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Крис
    ХР2
    у меня BSOD
    крашдамп валит всё на сизер
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Код (Text):
    1. BugCheck 100000D1, {45b0, ff, 0, f580aa75}
    2.  
    3.  
    4.  
    5. Probably caused by : Syser.sys ( Syser+aa75 )
    6.  
    7. Followup: MachineOwner
    8. ---------
    9.  
    10. kd> !analyze -v
    11. *******************************************************************************
    12. *                                                                             *
    13. *                        Bugcheck Analysis                                    *
    14. *                                                                             *
    15. *******************************************************************************
    16.  
    17. DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    18. An attempt was made to access a pageable (or completely invalid) address at an
    19. interrupt request level (IRQL) that is too high.  This is usually
    20. caused by drivers using improper addresses.
    21. If kernel debugger is available get stack backtrace.
    22. Arguments:
    23. Arg1: 000045b0, memory referenced
    24. Arg2: 000000ff, IRQL
    25. Arg3: 00000000, value 0 = read operation, 1 = write operation
    26. Arg4: f580aa75, address which referenced memory
    27.  
    28. Debugging Details:
    29. ------------------
    30.  
    31.  
    32.  
    33.  
    34. READ_ADDRESS:  000045b0
    35.  
    36. CURRENT_IRQL:  ff
    37.  
    38. FAULTING_IP:
    39. Syser+aa75
    40. f580aa75 8bb1580a0000    mov     esi,dword ptr [ecx+0A58h]
    41.  
    42. CUSTOMER_CRASH_COUNT:  2
    43.  
    44. DEFAULT_BUCKET_ID:  INTEL_CPU_MICROCODE_ZERO
    45.  
    46. BUGCHECK_STR:  0xD1
    47.  
    48. PROCESS_NAME:  PeterFerrie.exe
    49.  
    50. LAST_CONTROL_TRANSFER:  from f582e159 to f580aa75
    51.  
    52. STACK_TEXT:  
    53. WARNING: Stack unwind information not available. Following frames may be wrong.
    54. 822d2fc8 f582e159 19ca7000 00000023 00000023 Syser+0xaa75
    55. 822d2fd4 00000000 0000003b 001300d4 00000000 Syser+0x2e159
    56.  
    57.  
    58. STACK_COMMAND:  kb
    59.  
    60. FOLLOWUP_IP:
    61. Syser+aa75
    62. f580aa75 8bb1580a0000    mov     esi,dword ptr [ecx+0A58h]
    63.  
    64. SYMBOL_STACK_INDEX:  0
    65.  
    66. SYMBOL_NAME:  Syser+aa75
    67.  
    68. FOLLOWUP_NAME:  MachineOwner
    69.  
    70. MODULE_NAME: Syser
    71.  
    72. IMAGE_NAME:  Syser.sys
    73.  
    74. DEBUG_FLR_IMAGE_TIMESTAMP:  46aaa3f8
    75.  
    76. FAILURE_BUCKET_ID:  0xD1_Syser+aa75
    77.  
    78. BUCKET_ID:  0xD1_Syser+aa75
    79.  
    80. Followup: MachineOwner
    81. ---------
     
  4. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    wsd
    охренительный способ борьбы с сизером. правда, так и не ясно, что именно ему не нравится. у меня под айсом все нормально воркается и уж на BSOD никак не высаживает... странно... попробуй потрасировать PeterFerrie.exe под олькой или самим сизером. SED.exe - это примитивный отладчик. меня интересует именно работа PeterFerrie.exe (да, когда будешь трассировать закомментируй push -1/popfd, т.к. они при этом на фиг не нужны), и еще - поскольку PeterFerrie.exe "исторически" возник в результате дописывания примера кода, присланного мне Peter'ом Ferrie (ну что работает в ms), то push -1 сие его идея, мной не одобренная, но править было лень. у меня усе работало.
     
  5. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Крис
    олька
    RVA 0x1cfh
    MOV EAX,DWORD PTR DS:[EAX]
    стопориться

    а сисер прям на его загрузке бсодит
    грузил 3 раза
    Код (Text):
    1. BugCheck 100000D1, {4001c0, ff, 1, f584ef50}
    2.  
    3.  
    4.  
    5. Probably caused by : Syser.sys ( Syser+4ef50 )
    6.  
    7. Followup: MachineOwner
    8. ---------
    9.  
    10. kd> !analyze -v
    11. *******************************************************************************
    12. *                                                                             *
    13. *                        Bugcheck Analysis                                    *
    14. *                                                                             *
    15. *******************************************************************************
    16.  
    17. DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
    18. An attempt was made to access a pageable (or completely invalid) address at an
    19. interrupt request level (IRQL) that is too high.  This is usually
    20. caused by drivers using improper addresses.
    21. If kernel debugger is available get stack backtrace.
    22. Arguments:
    23. Arg1: 004001c0, memory referenced
    24. Arg2: 000000ff, IRQL
    25. Arg3: 00000001, value 0 = read operation, 1 = write operation
    26. Arg4: f584ef50, address which referenced memory
    27.  
    28. Debugging Details:
    29. ------------------
    30.  
    31.  
    32.  
    33.  
    34. WRITE_ADDRESS:  004001c0
    35.  
    36. CURRENT_IRQL:  ff
    37.  
    38. FAULTING_IP:
    39. Syser+4ef50
    40. f584ef50 880a            mov     byte ptr [edx],cl
    41.  
    42. CUSTOMER_CRASH_COUNT:  5
    43.  
    44. DEFAULT_BUCKET_ID:  COMMON_SYSTEM_FAULT
    45.  
    46. BUGCHECK_STR:  0xD1
    47.  
    48. PROCESS_NAME:  PeterFerrie.exe
    49.  
    50. LAST_CONTROL_TRANSFER:  from f5805f0e to f584ef50
    51.  
    52. STACK_TEXT:  
    53. WARNING: Stack unwind information not available. Following frames may be wrong.
    54. 822f6fb4 f5805f0e f591bd78 f591bef8 822f6fd4 Syser+0x4ef50
    55. 822f6fb8 f591bd78 f591bef8 822f6fd4 f591be78 Syser+0x5f0e
    56. 822f6fbc f591bef8 822f6fd4 f591be78 f582e00d Syser+0x11bd78
    57. 822f6fc0 822f6fd4 f591be78 f582e00d 804fb668 Syser+0x11bef8
    58. 822f6fc4 f591be78 f582e00d 804fb668 00000023 0x822f6fd4
    59. 822f6fd4 00000000 00000030 c0300004 c0001000 Syser+0x11be78
    60.  
    61.  
    62. STACK_COMMAND:  kb
    63.  
    64. FOLLOWUP_IP:
    65. Syser+4ef50
    66. f584ef50 880a            mov     byte ptr [edx],cl
    67.  
    68. SYMBOL_STACK_INDEX:  0
    69.  
    70. SYMBOL_NAME:  Syser+4ef50
    71.  
    72. FOLLOWUP_NAME:  MachineOwner
    73.  
    74. MODULE_NAME: Syser
    75.  
    76. IMAGE_NAME:  Syser.sys
    77.  
    78. DEBUG_FLR_IMAGE_TIMESTAMP:  46aaa3f8
    79.  
    80. FAILURE_BUCKET_ID:  0xD1_W_Syser+4ef50
    81.  
    82. BUCKET_ID:  0xD1_W_Syser+4ef50
    83.  
    84. Followup: MachineOwner
    85. ---------
     
  6. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    wsd
    не, ну понятно, что ольга стопиться, но дело не в ней, а в том, что ядро винды не снимает TF бит на фаултах и при выходе из seh-обработчика, обрабатывающего исключение доступа, функция ntdll!KiUserExceptionDispatcher вызывает ntdll!NtRaiseException, которая в свою очередь вызывает одноименный ядерный сервис для восстановления регистрового контекста и передачи управления в том место, откуда оно было прервано исключением, но поскольку TF флаг в контексте не сброшен, то при его восстановлении тут же генериться еще одно исключение (уже внутри ядра) и ядро повторно вызывает ntdll!KiUserExceptionDispatcher, так же не сбрасывая TF-флаг. процессор выполняет первую инструкцию функции ntdll!KiUserExceptionDispatcher, после чего генерит трассировочное прерывание, подхватываемое ядром, которое на этот раз наконец-то сбрасывает TF-флаг и вызываает ntdll!KiUserExceptionDispatcher _еще_ один раз, чтобы она обрабатала исключение в самой себе. если seh-обработчик написан корректно и готов ловить неожиданные исключения, то все ок (исключения реентерабельны), но... вот ольга на этом чисто конкретно обламывается и не хочет продолжать выполнение программы, хотя все остальные отладчики, известные мне, правят это путем принудительного сброса TF в регистровом контексте при ловле фаулта.

    кстати, крэш сусера может возникать из-за неестественных размеров файла PeterFerrie.exe. попробуй пересобрать его со следующими ключами линкера:

    link.exe %NIK%.obj /ENTRY:nezumi /SUBSYSTEM:CONSOLE KERNEL32.LIB
     
  7. SWR

    SWR New Member

    Публикаций:
    0
    Регистрация:
    11 май 2006
    Сообщения:
    226
    Адрес:
    Russia
    Код (Text):
    1. Microsoft Windows [‚ҐабЁп 6.0.6000]
    2. SED [Simple Experimental Debugger]
    3.  
    4. -CREATE_THREAD_DEBUG_EVENT
    5. -LOAD_DLL_DEBUG_EVENT
    6. -LOAD_DLL_DEBUG_EVENT
    7. ->BREAKPOINT                 [(80000003h) @0778A2EA8h]
    8. EIP = 778A2EA9h | ESP = 0012FB18h | EFLAGS = 00000246h
    9.  
    10. ->ACCESS VIOLATION           [(C0000005h) @0004001CFh]
    11. EIP = 004001CFh | ESP = 0012FF9Ch | EFLAGS = 00254FD7h
    12.  
    13. ->SINGLE STEP                [(80000004h) @0778C0E89h]
    14. EIP = 778C0E89h | ESP = 0012FCACh | EFLAGS = 00244AD7h
    15.  
    16. ->SINGLE STEP                [(80000004h) @0004001D2h]
    17. EIP = 004001D2h | ESP = 0012FF9Ch | EFLAGS = 00244ED7h
    18.  
    19. ->ILLEGAL_INSTRUCTION        [(C000001Dh) @0004001D2h]
    20. EIP = 004001D2h | ESP = 0012FF9Ch | EFLAGS = 00254FD7h
    21.  
    22. ->SINGLE STEP                [(80000004h) @0778C0E89h]
    23. EIP = 778C0E89h | ESP = 0012FCB4h | EFLAGS = 00244AD7h
    24.  
    25. ->SINGLE STEP                [(80000004h) @0004001D5h]
    26. EIP = 004001D5h | ESP = 0012FF9Ch | EFLAGS = 00244ED7h
    27.  
    28. ->SINGLE STEP                [(80000004h) @0004001D6h]
    29. EIP = 004001D6h | ESP = 0012FF9Ch | EFLAGS = 00244ED7h
    30.  
    31. ->BREAKPOINT                 [(80000003h) @0004001D6h]
    32. EIP = 004001D7h | ESP = 0012FF9Ch | EFLAGS = 00244FD7h
    33.  
    34. ->SINGLE STEP                [(80000004h) @000400215h]
    35. EIP = 00400215h | ESP = 0012FF9Ch | EFLAGS = 00244ED7h
    36.  
    37. -EXIT PROCESS DEBUG EVENT
    38. ExitCode: 0000h
    Это виста
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    SWR
    пасиб! значит, и в висте этот баг есть. забавно ;)
    ->ACCESS VIOLATION [(C0000005h) @0004001CFh]
    EIP = 004001CFh | ESP = 0012FF9Ch | EFLAGS = 00254FD7h

    смотри на EFLAGS = 00254FD7h, бит трассировки _взведен_, а ведь не должен...
     
  9. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Крис
    пересобрал с нормальными параметрами и сизер нормально грузит и
    отрабатывает её без бсода.
    Крис а какие версии у тебя по поводу бсодов не из
    под сизера, а по make-all-and-run.bat, с просто инсталлированным сизером?
    сам-то сизер её нормально отрабатывает :dntknw:
     
  10. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Крис
    я наверно не совсем корректно сформулировал предыдущий вопрос
    1. если сисер активен в системе то PeterFerrie.exe БСОДит
    2. если PeterFerrie.exe грузить через сизоровский лоадер, то не БСОДит

    сисер 1.93
     
  11. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    wsd
    да я понял. описал разработчикам. пускай ищут бага в сисере.
    а бсодит потому что пионерский рип айса. айс хотя бы хакеры писали...
    PeterFerrie.exe собран стандартным ms линкером и формально нарушает
    только два правила: выравнивание страниц и в ms-dos стабе там неверно
    указаны размеры файла (все равно его никто не проверяет), ну а что
    касается выравнивания - то в NT используется один загрузчик для драйверов
    и pe, а для драйверов такое выравнивание допустимо. в любом случае,
    бсод вылазить не должен. вероятно, систер обращатся к страницам
    pe-файла, которых нет ;) ибо выравнивание такое, что файл получается
    очень компактным ;) и это с честным компилятором и штатным линкером ;)
     
  12. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Крис
    вот кстати с отключенным сисером
    ХР2
    Код (Text):
    1. Microsoft Windows XP [‚ҐабЁп 5.1.2600]
    2. SED [Simple Experimental Debugger]
    3.  
    4. -CREATE_THREAD_DEBUG_EVENT
    5. -LOAD_DLL_DEBUG_EVENT
    6. -LOAD_DLL_DEBUG_EVENT
    7. ->BREAKPOINT                 [(80000003h) @07C901230h]
    8. EIP = 7C901231h | ESP = 0012FB20h | EFLAGS = 00000202h
    9.  
    10. ->ACCESS VIOLATION           [(C0000005h) @0004001CFh]
    11. EIP = 004001CFh | ESP = 0012FFBCh | EFLAGS = 00254FD7h
    12.  
    13. ->SINGLE STEP                [(80000004h) @07C90EAF0h]
    14. EIP = 7C90EAF0h | ESP = 0012FCCCh | EFLAGS = 00244ED7h
    15.  
    16. ->SINGLE STEP                [(80000004h) @0004001D2h]
    17. EIP = 004001D2h | ESP = 0012FFBCh | EFLAGS = 00240ED7h
    18.  
    19. ->ILLEGAL_INSTRUCTION        [(C000001Dh) @0004001D2h]
    20. EIP = 004001D2h | ESP = 0012FFBCh | EFLAGS = 00250FD7h
    21.  
    22. ->SINGLE STEP                [(80000004h) @07C90EAF0h]
    23. EIP = 7C90EAF0h | ESP = 0012FCD4h | EFLAGS = 00240ED7h
    24.  
    25. ->SINGLE STEP                [(80000004h) @0004001D5h]
    26. EIP = 004001D5h | ESP = 0012FFBCh | EFLAGS = 00240ED7h
    27.  
    28. ->SINGLE STEP                [(80000004h) @0004001D6h]
    29. EIP = 004001D6h | ESP = 0012FFBCh | EFLAGS = 00240ED7h
    30.  
    31. ->BREAKPOINT                 [(80000003h) @0004001D6h]
    32. EIP = 004001D7h | ESP = 0012FFBCh | EFLAGS = 00240FD7h
    33.  
    34. ->SINGLE STEP                [(80000004h) @000400215h]
    35. EIP = 00400215h | ESP = 0012FFBCh | EFLAGS = 00240ED7h
    36.  
    37. -EXIT PROCESS DEBUG EVENT
    38. ExitCode: 0000h
     
  13. lomomike

    lomomike New Member

    Публикаций:
    0
    Регистрация:
    7 фев 2008
    Сообщения:
    29
    Windows Vista Home Premium
     
  14. GroundHog

    GroundHog New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2005
    Сообщения:
    35
    Windows XP Professional x64 Service Pack 2

    "The application failed to initialize properly (0xc0000018)."

    Код (Text):
    1. Microsoft Windows [Version 5.2.3790]
    2. SED [Simple Experimental Debugger]
    3.  
    4. -CREATE_THREAD_DEBUG_EVENT
    5. -UNLOAD_DLL_DEBUG_EVENT
    6. -LOAD_DLL_DEBUG_EVENT
    7. -UNLOAD_DLL_DEBUG_EVENT
    8. -LOAD_DLL_DEBUG_EVENT
    9. -UNLOAD_DLL_DEBUG_EVENT
    10. -UNLOAD_DLL_DEBUG_EVENT
    11. ->UNKNOWN                    [(C0000018h) @07D64A79Eh]
    12. EIP = 7D64A79Eh | ESP = 0012FCBCh | EFLAGS = 00000246h
    13.  
    14. ->UNKNOWN                    [(C0000018h) @07D64A79Eh]
    15. EIP = 7D64A79Eh | ESP = 0012FCBCh | EFLAGS = 00000246h
    16.  
    17. -EXIT PROCESS DEBUG EVENT
    18. ExitCode: 0080h
     
  15. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    всем спасибо. баг подтвержден.
    впрочем, я не первый кто его обнаружил.
    сейчас имел переписку с парнем из ms,
    баг имеет место быть и никто его фиксить
    не собирается... и он не один. баг в смысле.
    там их до хрена. в ядре в смысле...
    вокруг обработчика исключений...