bsod

Тема в разделе "WASM.X64", создана пользователем Ahimov, 7 мар 2025 в 13:20.

  1. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    w10 падает ось на этом. x32dbg/olly пройти по f8.

    Проверьте у себя плз.
     

    Вложения:

    • bsod.zip
      Размер файла:
      12,7 КБ
      Просмотров:
      36
    • scr.png
      scr.png
      Размер файла:
      12,9 КБ
      Просмотров:
      49
  2. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    530
    Ahimov нравится это.
  3. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    alex_dz,

    А на 10-ке ?

    Падает шедулер(планировщик) при переключении контекста. Я думал такое невозможно. Конечно я сразу крэшдамп посмотрел.
     
  4. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    530
    честно? звучит из области фантастики....
    сорей всего что то где то в вашем енве не то
     
  5. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    alex_dz,

    А это что ??

    Код (Text):
    1. BUGCHECK_CODE:  3b
    2.  
    3. BUGCHECK_P1: c0000005
    4.  
    5. BUGCHECK_P2: fffff8026401be7b
    6.  
    7. BUGCHECK_P3: ffffde8021060d30
    8.  
    9. BUGCHECK_P4: 0
    10.  
    11. FILE_IN_CAB:  MEMORY.DMP
    12.  
    13. FAULTING_THREAD:  ffff8001e6dee080
    14.  
    15. CONTEXT:  ffffde8021060d30 -- (.cxr 0xffffde8021060d30)
    16. rax=00000000000001d2 rbx=0000000000000000 rcx=ffffde80210618f0
    17. rdx=0000000000000000 rsi=0000000000000002 rdi=ffff8001e6dee180
    18. rip=fffff8026401be7b rsp=ffffde8021061730 rbp=0000000000000000
    19. r8=0000000000000001  r9=0000000000000002 r10=0000000000000000
    20. r11=fffff80263e00000 r12=0000000000000001 r13=0000000000000000
    21. r14=ffff8001e6dee1c0 r15=0000000000000000
    22. iopl=0         nv up ei pl zr na po nc
    23. cs=0010  ss=0000  ds=002b  es=002b  fs=0053  gs=002b             efl=00010246
    24. nt!KiSwapThread+0x6db:
    25. fffff802`6401be7b c6401104        mov     byte ptr [rax+11h],4 ds:002b:00000000`000001e3=??
    26. Resetting default scope
    27.  
    28. PROCESS_NAME:  x32dbg.exe
    29.  
    30. STACK_TEXT:
    31. ffffde80`21061730 fffff802`6401b1cf     : ffff8001`e6dee080 ffff8001`000008b0 ffffde80`210618f0 00000000`00000000 : nt!KiSwapThread+0x6db
    32. ffffde80`210617e0 fffff802`6401aa73     : 00000000`00000002 fffff802`00000000 8001e476`b0500001 ffff8001`e6dee1c0 : nt!KiCommitThreadWait+0x14f
    33. ffffde80`21061880 fffff802`64689d21     : ffff8001`e7004f00 00000000`00000000 ffffde80`21061b01 ffff8001`deca7d01 : nt!KeWaitForSingleObject+0x233
    34. ffffde80`21061970 fffff802`64210ef5     : ffff8001`e6dee080 00007ffc`aed6b3f0 00000000`00000000 ffff8001`e7004f00 : nt!NtWaitForDebugEvent+0x261
    35. ffffde80`21061b00 00007ffc`aee90a34     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x25
    36. 00000000`05e5e378 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffc`aee90a34
    --- Сообщение объединено, 7 мар 2025 в 19:05 ---
    У меня нет вари, так что я не особо хочу эксперименты проводить, нужно ребутаться каждый раз. Вот сейчас на телефон записал видос. Сорян за тремор конечно, это от нейролептиков :)
     

    Вложения:

    • bsod.png
      bsod.png
      Размер файла:
      785,2 КБ
      Просмотров:
      33
    Последнее редактирование: 7 мар 2025 в 19:07
  6. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    Инфа из дампа, мб кто разобраться захочет. Виндебаг не падает.
    --- Сообщение объединено, 8 мар 2025 в 12:05 ---
    Если посмотреть место падания, получается вот что:
    Код (Text):
    1. fffff801`2d81be5e 488d8e00010000       lea     rcx, [rsi+100h]
    2. fffff801`2d81be65 b201                 mov     dl, 1
    3. fffff801`2d81be67 e834150000           call    ntkrnlmp!KiCancelTimer (fffff8012d81d3a0)
    4. fffff801`2d81be6c 84c0                 test    al, al
    5. fffff801`2d81be6e 0f855afeffff         jne     ntkrnlmp!KiSwapThread+0x52e (fffff8012d81bcce)
    6. fffff801`2d81be74 488d86d0010000       lea     rax, [rsi+1D0h]
    7. fffff801`2d81be7b c6401104             mov     byte ptr [rax+11h], 4
    rax+11h = 1E3
    fffff801`2d81be74 488d86d0010000 lea rax, [rsi+1D0h]
    rax = rsi+1D0
    rsi = 2

    Но прежде наверно вызывается KiCancelTimer(rsi+100h) и если бы rsi был невалид, то падала бы KiCancelTimer() :dash1:
    --- Сообщение объединено, 8 мар 2025 в 14:21 ---
    Не понятно.
     

    Вложения:

    • cd.asm
      Размер файла:
      41,1 КБ
      Просмотров:
      23
    • rip.png
      rip.png
      Размер файла:
      8,2 КБ
      Просмотров:
      27
    • kicanceltimer.png
      kicanceltimer.png
      Размер файла:
      25,8 КБ
      Просмотров:
      27
  7. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.486
    Адрес:
    Россия, Нижний Новгород
    Глянул, у меня на Win11 не воспроизвелось (десятки под рукой нет) - запускал и просто так, и под отладчиком пошагово (как у тебя на видео). Пробовал и на OllyDbg, и под x64dbg - не падает.
    Сравни, чему равен rsi до KiCancelTimer и после - возможно, он испортился после вызова (адрес-то и правда невалидный).
     
    Ahimov нравится это.
  8. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    HoShiMin,

    Не могу узнать значение, так как локально вд не работает. Есть полный крэшдамп, что там можно посмотреть ?

    Адрес крэша один и тот же, не зависимо от отладчика, баг не плавающий". Вот сейчас олей попробую, придётся подождать пока ребутнусь.
    --- Сообщение объединено, 8 мар 2025 в 16:28 ---
    Упало, но уже другая ошибка почему то:

    Код (Text):
    1.  
    2. BUGCHECK_CODE:  f7
    3.  
    4. BUGCHECK_P1: ffffe08b5fd2bcf0
    5.  
    6. BUGCHECK_P2: 61356ec0f8fd
    7.  
    8. BUGCHECK_P3: ffff9eca913f0702
    9.  
    10. BUGCHECK_P4: 0
    11.  
    12. FILE_IN_CAB:  MEMORY.DMP
    13.  
    14. FAULTING_THREAD:  ffffc40697ae8080
    15.  
    16. SECURITY_COOKIE:  Expected 000061356ec0f8fd found ffffe08b5fd2bcf0
    17.  
    18. BLACKBOXNTFS: 1 (!blackboxntfs)
    19.  
    20.  
    21. BLACKBOXPNP: 1 (!blackboxpnp)
    22.  
    23.  
    24. BLACKBOXWINLOGON: 1
    25.  
    26. PROCESS_NAME:  test.exe
    27.  
    28. TRAP_FRAME:  ffff800000000000 -- (.trap 0xffff800000000000)
    29. Unable to read trap frame at ffff8000`00000000
    30. Resetting default scope
    31.  
    32. STACK_TEXT:
    33. ffffe08b`5fd2aa98 fffff801`786b63c5     : 00000000`000000f7 ffffe08b`5fd2bcf0 00006135`6ec0f8fd ffff9eca`913f0702 : nt!KeBugCheckEx
    34. ffffe08b`5fd2aaa0 fffff801`785d5a8e     : ffffe08b`5fd2b0b0 fffff801`784ca5df fffff801`7831bf38 00000af8`00000000 : nt!_report_gsfailure+0x25
    35. ffffe08b`5fd2aae0 fffff801`785d5a23     : ffffe08b`5fd2abb0 00000000`00000000 ffffe08b`5fd2b0e8 ffffe08b`5fd2b0c0 : nt!_GSHandlerCheckCommon+0x5a
    36. ffffe08b`5fd2ab10 fffff801`78607d2f     : fffff801`785d5a10 00000000`00000000 00000000`00000000 00000000`00000000 : nt!_GSHandlerCheck+0x13
    37. ffffe08b`5fd2ab40 fffff801`784ca3c7     : ffffe08b`5fd2b0b0 00000000`00000000 ffffe08b`5fd2bcf0 fffff801`78a88daa : nt!RtlpExecuteHandlerForException+0xf
    38. ffffe08b`5fd2ab70 fffff801`784c94e6     : ffffe08b`5fd2ba88 ffffe08b`5fd2b7c0 ffffe08b`5fd2ba88 00000000`00000000 : nt!RtlDispatchException+0x297
    39. ffffe08b`5fd2b290 fffff801`7861186c     : 00000000`00001000 ffffe08b`5fd2bb30 ffff8000`00000000 00000000`00000000 : nt!KiDispatchException+0x186
    40. ffffe08b`5fd2b950 fffff801`7860d2bd     : ffffc406`97ae8080 00000000`00000002 00000000`00000000 fffff801`78e47960 : nt!KiExceptionDispatch+0x12c
    41. ffffe08b`5fd2bb30 fffff801`7841dfba     : ffffc406`97ae8080 fffff801`78a88da5 00000000`00000010 00000000`00000246 : nt!KiPageFault+0x43d
    42. ffffe08b`5fd2bcc0 fffff801`78a88daa     : fffff801`78e47960 00000000`00000000 00000000`00000000 ffffe08b`5fd2bfa0 : nt!ExReleaseFastMutex+0xa
    43. ffffe08b`5fd2bcf0 00000000`00000001     : 00000000`0009fda0 ffffe08b`5fd2ca58 ffffc406`9b7dc080 ffffc406`9b7dc080 : nt!DbgkpQueueMessage+0x222
    44. ffffe08b`5fd2bef0 00000000`0009fda0     : ffffe08b`5fd2ca58 ffffc406`9b7dc080 ffffc406`9b7dc080 00000000`00000001 : 0x1
    45. ffffe08b`5fd2bef8 ffffe08b`5fd2ca58     : ffffc406`9b7dc080 ffffc406`9b7dc080 00000000`00000001 fffff801`78a8a868 : 0x9fda0
    46. ffffe08b`5fd2bf00 ffffc406`9b7dc080     : ffffc406`9b7dc080 00000000`00000001 fffff801`78a8a868 00000000`00000000 : 0xffffe08b`5fd2ca58
    47. ffffe08b`5fd2bf08 ffffc406`9b7dc080     : 00000000`00000001 fffff801`78a8a868 00000000`00000000 00000000`00000000 : 0xffffc406`9b7dc080
    48. ffffe08b`5fd2bf10 00000000`00000001     : fffff801`78a8a868 00000000`00000000 00000000`00000000 00000000`00000000 : 0xffffc406`9b7dc080
    49. ffffe08b`5fd2bf18 fffff801`78a8a868     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x1
    50. ffffe08b`5fd2bf20 fffff801`78a29b31     : ffffc406`97515850 ffffe08b`5fd2c070 ffffc406`9b7dc080 00000000`00000000 : nt!DbgkpSendApiMessage+0xa4
    51. ffffe08b`5fd2bf70 fffff801`784c9694     : ffffe08b`5fd2ca58 ffffe08b`5fd2ca58 ffffe08b`5fd2c120 00000000`00401000 : nt!DbgkForwardException+0xfa161
    52. ffffe08b`5fd2c0f0 fffff801`7861186c     : 00000000`00001000 ffffe08b`5fd2cb00 ffff8000`00000000 00000000`00000000 : nt!KiDispatchException+0x334
    53. ffffe08b`5fd2c920 fffff801`7860d2bd     : ffffc406`97ae8080 00000000`00000006 ffffe08b`00000000 ffffc406`00000000 : nt!KiExceptionDispatch+0x12c
    54. ffffe08b`5fd2cb00 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiPageFault+0x43d
    55.  
    56.  
    57. SYMBOL_NAME:  nt!_report_gsfailure+25
    58.  
    59. MODULE_NAME: nt
    60.  
    61. IMAGE_NAME:  ntkrnlmp.exe
    62.  
    63. STACK_COMMAND:  .process /r /p 0xffffc4069b7dc080; .thread 0xffffc40697ae8080 ; kb
    64.  
    65. BUCKET_ID_FUNC_OFFSET:  25
    66.  
    67. FAILURE_BUCKET_ID:  0xF7_MISSING_GSFRAME_nt!_report_gsfailure
    68.  
    69. OS_VERSION:  10.0.19041.1
    70.  
    71. BUILDLAB_STR:  vb_release
    72.  
    73. OSPLATFORM_TYPE:  x64
    74.  
    75. OSNAME:  Windows 10
    76.  
    77. FAILURE_ID_HASH:  {82d2c1b5-b0cb-60a5-9a5d-78c8c4284f84}
    78.  
    79. Followup:     MachineOwner
    80. ---------
    81.  
    Это может из за запущенного вд ?

    Ладно ещё раз. Нет, то же самое. Что странно на синем экране вместо статусного кода ядерный адрес. Попозже попробую снова x32dbg, если будет такой крэш, значит после установки вд что то поменялось(появились DbgkpSendApiMessage()).

    Есть какие идеи ?
    --- Сообщение объединено, 8 мар 2025 в 16:54 ---
    Под олли ошибка исходная.
    --- Сообщение объединено, 8 мар 2025 в 16:59 ---
    * под x32dbg^ опечатка.
    --- Сообщение объединено, 8 мар 2025 в 17:07 ---
    KiCancelTimer небольшая процедура, пролог-эпилог и локали вроде с этим всё в порядке.

    Код (Text):
    1. .text:000000014021D3A0 ; __unwind { // __GSHandlerCheck
    2. .text:000000014021D3A0                 mov     r11, rsp
    3. .text:000000014021D3A3                 push    rbx
    4. .text:000000014021D3A4                 push    rbp
    5. .text:000000014021D3A5                 push    rsi
    6. .text:000000014021D3A6                 push    rdi
    7. .text:000000014021D3A7                 push    r12
    8. .text:000000014021D3A9                 sub     rsp, 80h
    9. .text:000000014021D3B0                 mov     rax, cs:__security_cookie
    10. .text:000000014021D3B7                 xor     rax, rsp
    11. .text:000000014021D3BA                 mov     [rsp+0A8h+var_30], rax
    12. .text:000000014021D3BF                 xor     r10d, r10d
    13. .text:000000014021D3BF ; } // starts at 14021D3A0
    14. .text:000000014021D3C2
    15. .text:000000014021D3C2 loc_14021D3C2:                          ; DATA XREF: .rdata:000000014004A960↑o
    16. .text:000000014021D3C2                                         ; .rdata:000000014004A970↑o ...
    17. .text:000000014021D3C2 ; __unwind { // __GSHandlerCheck
    18. .text:000000014021D3C2                 mov     [r11+10h], r13
    19. .text:000000014021D3C6                 mov     [r11-48h], r10
    20. .text:000000014021D3CA                 xor     sil, sil
    21. .text:000000014021D3CD                 mov     [r11-74h], r10d
    22. .text:000000014021D3D1                 movzx   r12d, dl
    23. .text:000000014021D3D5                 mov     [rsp+0A8h+var_78], dl
    24. .text:000000014021D3D9                 mov     rbx, rcx
    25. .text:000000014021D3DC                 mov     [r11+20h], r15
    26. .text:000000014021D3E0
    27. .text:000000014021D3E0 loc_14021D3E0:                          ; CODE XREF: KiCancelTimer+4A6↓j
    28. .text:000000014021D3E0                 mov     [rsp+0A8h+var_70], r10d
    29. .text:000000014021D3E5                 lea     r11, cs:140000000h
    30. .text:000000014021D3EC                 lock bts dword ptr [rbx], 7
    31. .text:000000014021D3F1                 jb      loc_14021D710
    32. .text:000000014021D3F7
    33. .text:000000014021D3F7 loc_14021D3F7:                          ; CODE XREF: KiCancelTimer+391↓j
    34. .text:000000014021D3F7                 test    byte ptr [rbx+3], 0C0h
    35. .text:000000014021D3FB                 jz      loc_14021D61B
    36. .text:000000014021D401                 movzx   eax, word ptr [rbx+38h]
    37. .text:000000014021D405                 movzx   r9d, byte ptr [rbx+2]
    38. .text:000000014021D40A                 mov     rbp, gs:20h
    39. .text:000000014021D413                 mov     r15d, r9d
    40. .text:000000014021D416                 mov     [rsp+0A8h+var_6C], r10d
    41. .text:000000014021D41B                 mov     r13, ds:rva KiProcessorBlock[r11+rax*8]
    42. .text:000000014021D423                 movzx   eax, word ptr [rbx+3Ah]
    43. .text:000000014021D427                 lea     rdi, [r9+10h]
    44. .text:000000014021D42B                 mov     rcx, [rbp+84B8h]
    45. .text:000000014021D432                 add     r13, 3940h
    46. .text:000000014021D439                 shl     rax, 8
    47. .text:000000014021D43D                 add     rdi, rax
    48. .text:000000014021D440                 shl     rdi, 5
    49. .text:000000014021D444                 add     rdi, r13
    50. .text:000000014021D447                 test    rcx, rcx
    51. .text:000000014021D44A                 jnz     loc_14042715C
    52. .text:000000014021D450
    53. .text:000000014021D450 loc_14021D450:                          ; CODE XREF: KiCancelTimer+2CA↓j
    54. .text:000000014021D450                                         ; KiCancelTimer+209DC0↓j ...
    55. .text:000000014021D450                 lock bts qword ptr [rdi], 0
    56. .text:000000014021D456                 jb      loc_14021D63E
    57. .text:000000014021D45C                 movzx   eax, byte ptr [rbx+3]
    58. .text:000000014021D460                 test    al, al
    59. .text:000000014021D462                 js      loc_14021D6C5
    60. .text:000000014021D468                 movzx   r8d, word ptr [rbx+3Ah]
    61. .text:000000014021D46D                 lea     rdx, [rbx+20h]
    62. .text:000000014021D471                 mov     rcx, [rdx]
    63. .text:000000014021D474                 lea     rsi, [r15+10h]
    64. .text:000000014021D478                 mov     eax, r8d
    65. .text:000000014021D47B                 lea     rbp, [r15+10h]
    66. .text:000000014021D47F                 shl     rax, 8
    67. .text:000000014021D483                 add     rsi, rax
    68. .text:000000014021D486                 mov     eax, r8d
    69. .text:000000014021D489                 xor     rax, 1
    70. .text:000000014021D48D                 shl     rsi, 5
    71. .text:000000014021D491                 shl     rax, 8
    72. .text:000000014021D495                 add     rbp, rax
    73. .text:000000014021D498                 mov     rax, [rdx+8]
    74. .text:000000014021D49C                 shl     rbp, 5
    75. .text:000000014021D4A0                 cmp     [rcx+8], rdx
    76. .text:000000014021D4A4                 jnz     loc_140427458
    77. .text:000000014021D4AA                 cmp     [rax], rdx
    78. .text:000000014021D4AD                 jnz     loc_140427458
    79. .text:000000014021D4B3                 mov     [rax], rcx
    80. .text:000000014021D4B6                 mov     [rcx+8], rax
    81. .text:000000014021D4BA                 cmp     rax, rcx
    82. .text:000000014021D4BD                 jz      short loc_14021D533
    83. .text:000000014021D4BF
    84. .text:000000014021D4BF loc_14021D4BF:                          ; CODE XREF: KiCancelTimer+270↓j
    85. .text:000000014021D4BF                                         ; KiCancelTimer+20A074↓j ...
    86. .text:000000014021D4BF                 lock and qword ptr [rdi], 0
    87. .text:000000014021D4C4                 mov     rcx, gs:20h
    88. .text:000000014021D4CD                 mov     rdx, [rcx+84B8h]
    89. .text:000000014021D4D4                 test    rdx, rdx
    90. .text:000000014021D4D7                 jnz     loc_140427434
    91. .text:000000014021D4DD
    92. .text:000000014021D4DD loc_14021D4DD:                          ; CODE XREF: KiCancelTimer+20A098↓j
    93. .text:000000014021D4DD                                         ; KiCancelTimer+20A0A7↓j ...
    94. .text:000000014021D4DD                 mov     eax, 0BFFFFF7Fh
    95. .text:000000014021D4E2                 mov     ecx, 0BFFFFFFFh
    96. .text:000000014021D4E7
    97. .text:000000014021D4E7 loc_14021D4E7:                          ; CODE XREF: KiCancelTimer+368↓j
    98. .text:000000014021D4E7                 test    r12b, r12b
    99. .text:000000014021D4EA                 cmovz   eax, ecx
    100. .text:000000014021D4ED                 lock and [rbx], eax
    101. .text:000000014021D4F0                 mov     sil, 1
    102. .text:000000014021D4F3
    103. .text:000000014021D4F3 loc_14021D4F3:                          ; CODE XREF: KiCancelTimer+27E↓j
    104. .text:000000014021D4F3                                         ; KiCancelTimer+28B↓j
    105. .text:000000014021D4F3                 test    dword ptr cs:PerfGlobalGroupMask+8, 20000h
    106. .text:000000014021D4FD                 jnz     loc_14042745F
    107. .text:000000014021D503
    108. .text:000000014021D503 loc_14021D503:                          ; CODE XREF: KiCancelTimer+20A0C2↓j
    109. .text:000000014021D503                                         ; KiCancelTimer+20A104↓j
    110. .text:000000014021D503                 mov     r15, [rsp+0A8h+arg_18]
    111. .text:000000014021D50B                 movzx   eax, sil
    112. .text:000000014021D50F                 mov     r13, [rsp+0A8h+arg_8]
    113. .text:000000014021D517                 mov     rcx, [rsp+0A8h+var_30]
    114. .text:000000014021D51C                 xor     rcx, rsp        ; StackCookie
    115. .text:000000014021D51F                 call    __security_check_cookie
    116. .text:000000014021D524                 add     rsp, 80h
    117. .text:000000014021D52B                 pop     r12
    118. .text:000000014021D52D                 pop     rdi
    119. .text:000000014021D52E                 pop     rsi
    120. .text:000000014021D52F                 pop     rbp
    121. .text:000000014021D530                 pop     rbx
    122. .text:000000014021D531                 retn
    123. .text:000000014021D531 ; } // starts at 14021D3C2
    --- Сообщение объединено, 8 мар 2025 в 17:14 ---
    Я вот что подумал. А не может ли KiCancelTimer() вкинуть фаулт, который локально обработается, где и портится контекст и это не видит вд ?
     

    Вложения:

    • olly.png
      olly.png
      Размер файла:
      414,5 КБ
      Просмотров:
      27
    Последнее редактирование: 8 мар 2025 в 16:43
  9. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.486
    Адрес:
    Россия, Нижний Новгород
    Честно говоря, вообще не уверен, что проблема именно в KiCancelTimer. То, что в нём упало, скорее следствие чего-то, что произошло где-то раньше (возможно даже в другом процессе).
    Потому что тут странно: в первом дампе у тебя упало в контексте отладчика, во втором - в контексте самого процесса.
    Явно где-то баг в реализации отладки в ядре: где-то что-то портится, а потом это рандомно всплывает в разных местах.
    Вот например: во втором дампе у тебя вылетел PF, ядро его успешно поймало, отдало отладчику, дальше какой-то мусор, снова отладчик - и падаем на FastMutex'е.
    Ну явно он испортился не прямо сейчас, а где-то задолго (возможно, как раз в том мусоре между DkbgpSendApiMessage и DbgkpQueueMessage).
    --- Сообщение объединено, 8 мар 2025 в 23:25 ---
    А вот этот вылетевший PageFault (который самый первый, в самом низу стактрейса) - он где? Это PF из юзермода или уже где-то в ядре?
    --- Сообщение объединено, 8 мар 2025 в 23:42 ---
    Кстати, в последнем дампе упало на освобождении вот этого мьютекса (это из десятки 19041, как у тебя):

    upload_2025-3-8_23-41-29.png

    Тут же нечему падать - значит, кто-то испортил сам мьютекс.
     
    Последнее редактирование: 8 мар 2025 в 23:42
    Ahimov нравится это.
  10. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    HoShiMin

    > вот этот вылетевший PageFault (который самый первый, в самом низу стактрейса) - он где? Это PF из юзермода или уже где-то в ядре?

    Это уже сложная ошибка, думаю лучше разобрать тот с шедулером, тем более он стабильно воспроизводится. Разбирать пэйджфаулт это наверно нет смысла. В крэшдамп сохраняется состояние ос на момент падения, наверно нет всяких трасс.

    Как то очень странно, разве такая трудность потратить пять минут на проверку, воспроизводится ли баг на другом компе.
     
  11. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.486
    Адрес:
    Россия, Нижний Новгород
    Дык нету десятки, её надо качать, ставить - у меня только виртуалка с одиннадцатой. И есть коллекция ядер от разных систем - вот там и смотрю.

    А вот по планировщику: падаем здесь (в KiSwapThread):

    upload_2025-3-9_0-1-33.png

    Опять же, тут нечему падать, если где-то не испортился сам указатель на oldThread (а он как раз испортился - это ведь он лежит в rsi).
    Но я глянул в KiCancelTimer - там rsi кладётся на стек и восстанавливается нормально, стек не портится.
    И при этом, в KiCancelTimer много логики, завязанной на содержимом самого таймера - будь он изначально невалидным, неминуемо падало бы в нём.

    Собсна, всё как ты и говорил, но я не вижу ни одной причины тут падать...
    Эксепшны - тоже вряд ли, там нет try..except'ов.
     
    Ahimov нравится это.
  12. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    Есть ли мысли как это решить ?

    Брать второй ноут и вд отлаживать это край, в принципе я этот взял чтобы разобрать проблему майкла. Тем более я не знаю как это сделать.
     
  13. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.486
    Адрес:
    Россия, Нижний Новгород
    Так а в чём проблема настроить ядерную отладку на виртуалке?
    Настраивай через KDNET: отладка будет по UDP, без COM-портов. Настраивается буквально в три-четыре команды.
    Вот инструкция: https://learn.microsoft.com/en-us/w...ger/setting-up-a-network-debugging-connection

    Пункты про busparams можно пропустить, заведётся и без них.

    В итоге всё сведётся к этим командам на виртуалке:
    Код (Text):
    1.  
    2. bcdedit.exe /debug on
    3. bcdedit.exe /dbgsettings net hostip:123.123.123.123 port:50000
    4.  
    …где 123.123.123.123 - адрес хоста, а 50000 - порт, на котором будет слушать отладчик на хосте (50000 - дефолтный).
    Вторая команда выдаст тебе ключик, скопируй только сам ключик, без key=.
    Дальше на хосте запускаешь WinDbg (возьми в MS Store), там File -> Attach to kernel -> Выбираешь KDNET, вставляешь в поле свой ключик с виртуалки, ставишь порт 50000 и запускаешь.
    Теперь отладчик ждёт подключений: важно, что не отладчик подключается к виртуалке, а виртуалка к отладчику - отключи на хосте и виртуалке файрволл, чтобы виртуалке никто не мешал.

    И всё, можно идти в ребут, и будет у тебя нормальная ядерная отладка.
     
    Ahimov нравится это.
  14. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    Большое спасибо!

    Полный аварийный дамп весит примерно пол гб, сеть через мб, в принципе я могу попробовать его кудато загрузить.
    --- Сообщение объединено, 9 мар 2025 в 02:14 ---
    Вот вроде загрузилось. Это с последнего крэша где стабильный адрес, я просто немного запутался запуская эти отладчики :blush2:
     
  15. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    Может поэкспериментировать с самими инструкциями на isa уровне ?

    Почему крэш именно на popfd, если во флажках ничего нет необычного: efl=00010246

    Причём крэш только при пошаговой отладке, может попробовать потрейсить ?
    --- Сообщение объединено, 9 мар 2025 в 10:55 ---
    Не падает trace into.
    --- Сообщение объединено, 9 мар 2025 в 10:59 ---
    Если остановиться на popfd, EF: 0x214 TF -> 1, 0x314 посмотреть что будет, снова исходный крэш. Но это при нажатии f8, возможно при run не упадёт, так как всё дело в отладочных сервисах.
    --- Сообщение объединено, 9 мар 2025 в 11:08 ---
    Попробовать собрать аналог в 64 ?
     
    Последнее редактирование: 9 мар 2025 в 11:02
  16. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.486
    Адрес:
    Россия, Нижний Новгород
    Попробуй и в x64, и попробуй уменьшить исходный пример (в идеале оставить только popfd).
    Например, падает ли на любом popfd или только на popfd с 0x214 на 0x314.
     
  17. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    Сейчас посмотрим.
    --- Сообщение объединено, 9 мар 2025 в 12:58 ---
    Код (Text):
    1. EP proc
    2.     push 0
    3.     popfd
    bsod.
    --- Сообщение объединено, 9 мар 2025 в 13:00 ---
    Попробовать как то флажки по другому загрузить, iret ?
    --- Сообщение объединено, 9 мар 2025 в 13:07 ---
    Код (Text):
    1. EP proc
    2.     push 0
    3.     push cs
    4.     push offset stub
    5.     iretd
    упало на iret. Тот же самый #AV.

    Что то я понять не могу, это не контекст. Попробовать вставить префиксы в инструкцию ?
    --- Сообщение объединено, 9 мар 2025 в 13:24 ---
    x64dbg

    pushfq
    popfq

    bsod.
    --- Сообщение объединено, 9 мар 2025 в 13:28 ---
    Такого я никогда не видел, это какое то чудо. Попробовать контекст прогрузить, ntcontinue ?
    --- Сообщение объединено, 9 мар 2025 в 13:51 ---
    Код (Text):
    1. EP proc
    2. Local Ctx[512]:byte
    3.     mov CONTEXT.ContextFlags[Ctx],CONTEXT_FULL
    4.     invoke GetThreadContext, -2, addr Ctx
    5.     invoke ZwContinue, addr Ctx, 0
    Не падает.
    --- Сообщение объединено, 9 мар 2025 в 14:25 ---
    Код (Text):
    1. EP proc
    2.     push 0
    3.     push cs
    4.     push offset stub
    5.     db 0f0h, 0f0h, 0f0h
    6.     iretd
    - префикс блокировки, возникает фаулт ничего не крэшит.
     
    Последнее редактирование: 9 мар 2025 в 13:15
  18. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.486
    Адрес:
    Россия, Нижний Новгород
    Вероятно, упадёт с RtlRestoreContext вместо NtContinue
    --- Сообщение объединено, 9 мар 2025 в 14:27 ---
    А бсодит в итоге в тех же местах в ядре? Где-то в DbgkpQueueMessage?
     
  19. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    137
    HoShiMin,

    Нет, адрес тот же в шедулере. Посмотрю сейчас RtlRestoreContext нужно глянуть прототип, я не помню её.
    --- Сообщение объединено, 9 мар 2025 в 15:00 ---
    RtlRestoreContext не билдится, этого экспорта нет в ntdll, kernel32, kernelbase.

    На мсдн нет версии системы:

    Эта апи наверно была в младших версиях. Не удивительно почему я её не помню.
    --- Сообщение объединено, 9 мар 2025 в 15:22 ---
    github/nt5src/..ia64

    Эта апи есть, но там нет никаких сервисных вызовов. Это какая то заглушка правящая структуры.
     
    Последнее редактирование: 9 мар 2025 в 15:06