bsod

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

  1. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.498
    Адрес:
    Россия, Нижний Новгород
    Теперь постоянно одна и та же причина - испорчен стек.
    nt!RtlpExecuteHandlerForException+0xf
    Вот тут мы вызываем обработчик, и на выходе ломается stack cookie, не дав нормально обработать PF.
    Непонятна и сама причина PF в ExReleaseFastMutex'е, и почему ломается стек в обработчике.

    Залей ещё свой ntoskrnl.exe: думаю, у нас отличаются билды.
     
  2. Ahimov

    Ahimov Active Member

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

    Вот ядро и два дампа, крэшнул олли и иду. Вот иды к ядру бд если нужно. Почему то шедулер больше не валится.

    upd А нет, в последнем дампе шед:
    Код (Text):
    1. fffff883`fb474730 fffff807`5f01b1cf     : ffffaa8f`341c9080 fffff807`5fb27a00 fffff883`fb4748f0 00000000`00000000 : nt!KiSwapThread+0x6db
    2. fffff883`fb4747e0 fffff807`5f01aa73     : 00000000`00000033 fffff807`00000000 00000000`00000001 ffffaa8f`341c91c0 : nt!KiCommitThreadWait+0x14f
    3. fffff883`fb474880 fffff807`5f689d21     : ffffaa8f`35a63b30 00000000`00000000 fffff883`fb474b01 fffff807`5b244101 : nt!KeWaitForSingleObject+0x233
    4. fffff883`fb474970 fffff807`5f210ef5     : ffffaa8f`341c9080 00000225`2638f400 00000000`00000000 ffffaa8f`35a63b01 : nt!NtWaitForDebugEvent+0x261
    5. fffff883`fb474b00 00007ffe`7ee70a34     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x25
    6. 000000f2`053ff288 00000000`00000000     : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffe`7ee70a34
    7.  
    8.  
    9. SYMBOL_NAME:  nt!KiSwapThread+6db
    10.  
    --- Сообщение объединено, 23 мар 2025 ---
    Интересно если поток крутить как при racecond атаке(suspend/resume) будет ли падать :scratch_one-s_head:
    --- Сообщение объединено, 23 мар 2025 ---
    Не падает без отладчика, под отладчиком пока не буду проверять.

    Код (Text):
    1. Thread proc p1:DWORD
    2. Local Ctx:CONTEXT
    3. @@:
    4.     mov Ctx.ContextFlags,CONTEXT_ALL
    5.     invoke GetThreadContext, Thd, addr Ctx
    6.     jmp @b
    7. Thread endp
    8.  
    9.  
    10. EP proc
    11. Local Ctx:CONTEXT
    12.       invoke CreateThread, 0, 0, addr Thread, 0, 0, addr Tid
    13.     mov Thd,eax
    14. Iter:
    15.     .repeat
    16.         invoke ZwSuspendThread, Thd, addr Scount
    17.         mov Ctx.ContextFlags,CONTEXT_ALL
    18.         invoke GetThreadContext, Thd, addr Ctx
    19.         invoke ZwResumeThread, Thd, addr Scount
    20.     .until Etrap
    --- Сообщение объединено, 23 мар 2025 ---
    Можно видимо пофиксить отладчики, убрать NtResumeThread, отфильтровав целевой тред, затем будет вызов NtDebugContinue, который запустит поток. Но это наверно не нужно)
     
    Последнее редактирование: 23 мар 2025