Спасибо! Получается варианта два возможны - ядерный апдейт или проц ошибка, по другому не может быть. Я затупил конечно, нужно было глянуть дамп с вирты, пока она еще запускалась
сейчас посмотрел у себя на Win10 (параметры-->обновления), насчиталось 2 обновления (c 21H1 к 22H2), и 50 исправлений ядра. как советовал HoShiMin может стоит обновиться? если сервак мягких откажет, значит ядро пропатченное с левым ключом.
А если после апдейта баг пропадет, перестанет воспроизводится, затем как откатить назад ? Не нравится мне эта идея..) Нужно вначале разобраться, только потом фиксить. --- Сообщение объединено, 16 мар 2025 --- Думал и вот. В начале темы где с набором эксперименты: Код (Text): EP proc Local Ctx[512]:byte mov CONTEXT.ContextFlags[Ctx],CONTEXT_FULL invoke GetThreadContext, -2, addr Ctx invoke ZwContinue, addr Ctx, 0 - ошибка, я забыл взвести трейс флаг, никто не поправил. Возврат из ядра идет по iret с трейс флагом, вот интересно где крэшнет, в ядре или в юзер после iret, тк она взводит RF. Попозже проверю.
тут оч интересная новость попалась под руки https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3019.html
Поправил, всё равно не падает. --- Сообщение объединено, 16 мар 2025 --- Revision Guide for AMD Family 15h Models 00h-0Fh Processors По отладке есть такое: - не то что нужно(dr7). --- Сообщение объединено, 16 мар 2025 --- Получилось с vbox. Оказалось можно вм открыть через 7z что бы добыть файлы. Сегодня крэш: Код (Text): Arguments: Arg1: c0000005, The exception code that was not handled Arg2: 7ffdf221, The address that the exception occurred at Arg3: f853e3a4, Trap Frame Arg4: 00000000 Debugging Details: ------------------ BUGCHECK_CODE: 8e BUGCHECK_P1: ffffffffc0000005 BUGCHECK_P2: 7ffdf221 BUGCHECK_P3: fffffffff853e3a4 BUGCHECK_P4: 0 FILE_IN_CAB: Mini031625-01.dmp VIRTUAL_MACHINE: VirtualBox FAULTING_THREAD: ffffffffff9ba020 TRAP_FRAME: f853e3a4 -- (.trap 0xfffffffff853e3a4) ErrCode = 00000002 eax=08360a04 ebx=00000000 ecx=f853e61c edx=00000009 esi=f853e6a8 edi=0000010e eip=7ffdf221 esp=f853e418 ebp=f853e668 iopl=0 ov up ei ng nz ac po nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010a92 7ffdf221 0000 add byte ptr [eax],al ds:0023:08360a04=?? Resetting default scope CUSTOMER_CRASH_COUNT: 1 PROCESS_NAME: ollydbg.exe STACK_TEXT: WARNING: Frame IP not in any known module. Following frames may be wrong. f853e668 bf81300e f853e908 000000c9 00000009 0x7ffdf221 f853e7d0 bf80c411 f853e908 7ffdf1dc 0000006c win32k!GreBatchTextOut+0x344 f853e924 804de7be 000000e0 0012e3f4 0012e40c win32k!NtGdiFlushUserBatch+0x11b f853e948 bf80ecc6 bc6a83f8 00000084 00001f80 nt!KiFastCallEntry+0xca f853e9b8 8062dc62 4000137f 01e20000 00000000 win32k!xxxSendMessage+0x1b f853ed58 804de7ec 0012f834 0012f7c4 7c90e4f4 nt!PsSetContextThread+0x137 <Intermediate frames may have been skipped due to lack of complete unwind> f853ed58 7c90e4f4 (T) 0012f834 0012f7c4 7c90e4f4 nt!KiFastCallEntry+0xf8 <Intermediate frames may have been skipped due to lack of complete unwind> 0012f7c4 00000000 (T) 00000000 00000000 00000000 0x7c90e4f4 STACK_COMMAND: .thread /r /p 0xffffffffff9ba020 ; kb SYMBOL_NAME: win32k!GreBatchTextOut+344 MODULE_NAME: win32k IMAGE_NAME: win32k.sys IMAGE_VERSION: 5.1.2600.5512 FAILURE_BUCKET_ID: 0x8E_win32k!GreBatchTextOut+344 OSPLATFORM_TYPE: x86 OSNAME: Windows XP FAILURE_ID_HASH: {d47581f2-9aa6-6f2b-8563-365bdf625749} Followup: MachineOwner --------- #AV и на экране был page_fault_in_nonpage.. Предыдущий: Код (Text): Microsoft (R) Windows Debugger Version 10.0.27793.1000 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [C:\mini\Mini031425-01.dmp] Mini Kernel Dump File: Only registers and stack trace are available ************* Path validation summary ************** Response Time (ms) Location Deferred srv* Symbol search path is: srv* Executable search path is: Windows XP Kernel Version 2600 (Service Pack 3) UP Free x86 compatible Product: WinNt, suite: TerminalServer SingleUserTS Edition build lab: 2600.xpsp.080413-2111 Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055b1c0 Debug session time: Fri Mar 14 06:00:16.295 2025 (UTC + 3:00) System Uptime: 0 days 0:05:19.499 Loading Kernel Symbols ............................................................... ........................................ Loading User Symbols Loading unloaded module list ............... For analysis of this file, run !analyze -v eax=ffdff13c ebx=00000cd4 ecx=00000000 edx=f8f4bd2c esi=e19ae7c8 edi=e19ae7d0 eip=8053380e esp=f8f4bc6c ebp=f8f4bc84 iopl=0 nv up ei ng nz na pe nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00200286 nt!KeBugCheckEx+0x1b: 8053380e 5d pop ebp kd> !analyze -v ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* BAD_POOL_CALLER (c2) The current thread is making a bad pool request. Typically this is at a bad IRQL level or double freeing the same allocation, etc. Arguments: Arg1: 00000007, Attempt to free pool which was already freed Arg2: 00000cd4, Pool tag value from the pool header Arg3: 00000000, Contents of the first 4 bytes of the pool header Arg4: e19ae7d0, Address of the block of pool being deallocated Debugging Details: ------------------ Target machine operating system not supported KEY_VALUES_STRING: 1 Key : Analysis.CPU.mSec Value: 2062 Key : Analysis.Elapsed.mSec Value: 3166 Key : Analysis.IO.Other.Mb Value: 0 Key : Analysis.IO.Read.Mb Value: 11 Key : Analysis.IO.Write.Mb Value: 0 Key : Analysis.Init.CPU.mSec Value: 2343 Key : Analysis.Init.Elapsed.mSec Value: 2681 Key : Analysis.Memory.CommitPeak.Mb Value: 86 Key : Analysis.Version.DbgEng Value: 10.0.27793.1000 Key : Analysis.Version.Description Value: 10.2410.02.02 amd64fre Key : Analysis.Version.Ext Value: 1.2410.2.2 Key : Bugcheck.Code.LegacyAPI Value: 0xc2 Key : Bugcheck.Code.TargetModel Value: 0xc2 Key : Failure.Bucket Value: 0xc2_7_win32k!HeavyFreePool+bb Key : Failure.Exception.IP.Address Value: 0xffffffffbf802a7d Key : Failure.Exception.IP.Module Value: win32k Key : Failure.Exception.IP.Offset Value: 0x2a7d Key : Failure.Hash Value: {5b4031c7-0136-2cdb-8812-5705bb3a293e} BUGCHECK_CODE: c2 BUGCHECK_P1: 7 BUGCHECK_P2: cd4 BUGCHECK_P3: 0 BUGCHECK_P4: ffffffffe19ae7d0 FILE_IN_CAB: Mini031425-01.dmp VIRTUAL_MACHINE: VirtualBox FAULTING_THREAD: ffffffffffa00020 POOL_ADDRESS: Target machine operating system not supported e19ae7d0 CUSTOMER_CRASH_COUNT: 1 PROCESS_NAME: ollydbg.exe STACK_TEXT: f8f4bc84 8054c4c1 000000c2 00000007 00000cd4 nt!KeBugCheckEx+0x1b f8f4bcd4 bf802a7d e19ae7d0 00000000 f8f4bcf0 nt!ExFreePoolWithTag+0x2be f8f4bce4 bf805891 e19ae7d0 f8f4bd24 bf8058c6 win32k!HeavyFreePool+0xbb f8f4bcf0 bf8058c6 e19ae7d0 00000004 bf81312e win32k!FreeObject+0x25 f8f4bcfc bf81312e e14c9048 bf85185f e14c9048 win32k!REGION::vDeleteREGION+0x14 f8f4bd04 bf85185f e14c9048 00000000 bf8517c0 win32k!RGNOBJ::vDeleteRGNOBJ+0xc f8f4bd24 bf851746 e1b63868 e14c9048 f8f4be2c win32k!vSpComputeUncoveredRegion+0x3c f8f4bdf8 bf8bb286 00000296 ffffff5c e1905010 win32k!vSpComputeSpriteRanges+0xf6 f8f4be0c bf851b37 e14c9048 f8f4bf30 00000000 win32k!ENUMAREAS::ENUMAREAS+0x18 f8f4be6c bf827d02 e14c9048 f8f4bf28 e1905010 win32k!vSpBigUnderlayCopy+0x2c f8f4bf40 bf826312 e14c9048 00000085 0000001c win32k!bSpUpdatePosition+0x351 f8f4c328 bf8267e9 e14c9008 bc6306e8 bc6306e8 win32k!vSpUpdateSpriteVisRgn+0x297 f8f4c33c bf826586 e14c9008 e1144ba0 00000000 win32k!GreUpdateSpriteVisRgn+0x32 f8f4c35c bf825bba bc6306e8 0000000c e1144ba0 win32k!zzzInvalidateDCCache+0x102 f8f4c3a4 bf8241eb e1144ba0 00000000 bc6641d0 win32k!zzzBltValidBits+0xfa f8f4c3fc bf826f29 bc6306e8 00000000 e1144b88 win32k!xxxEndDeferWindowPosEx+0x13a f8f4c41c bf854449 bc6641d0 bc664120 00000000 win32k!xxxSetWindowPos+0x101 f8f4c464 bf82519c bc664120 bc6306e8 e19eba58 win32k!xxxAddShadow+0x102 f8f4c48c bf824241 bf9ab840 00000000 bc664120 win32k!xxxSendChangedMsgs+0xed f8f4c4e4 bf826f29 bc6306e8 00000000 00000000 win32k!xxxEndDeferWindowPosEx+0x285 f8f4c504 bf8f1180 bc664120 ffffffff 000000a4 win32k!xxxSetWindowPos+0x101 f8f4c5e0 bf921db2 bc664120 bf9ab860 bf9ab8e0 win32k!xxxMNOpenHierarchy+0x745 f8f4c5fc bf8f2ce7 bf9ab8e0 bf9ab860 00000005 win32k!xxxMNButtonDown+0x4b f8f4c65c bf8f38b3 f8f4c67c 00000000 00000005 win32k!xxxHandleMenuMessages+0x589 f8f4c6a8 bf853d7d bf9ab8e0 bf9ab860 002400bb win32k!xxxMNLoop+0x11b f8f4c6e4 bf80b89d bc661710 0000f095 002400bb win32k!xxxSysCommand+0x4cc f8f4c744 bf80ec8c bc661710 00000112 0000f095 win32k!xxxRealDefWindowProc+0xc97 f8f4c75c bf820a67 bc661710 00000112 0000f095 win32k!xxxWrapRealDefWindowProc+0x16 f8f4c778 bf80eed3 bc661710 00000112 0000f095 win32k!NtUserfnDWORD+0x27 f8f4c7b0 804de7ec 00030188 00000112 0000f095 win32k!NtUserMessageCall+0xae <Intermediate frames may have been skipped due to lack of complete unwind> f8f4c7b0 7c90e4f4 (T) 00030188 00000112 0000f095 nt!KiFastCallEntry+0xf8 WARNING: Frame IP not in any known module. Following frames may be wrong. <Intermediate frames may have been skipped due to lack of complete unwind> 0012d2e8 00000000 (T) 00000000 00000000 00000000 0x7c90e4f4 STACK_COMMAND: .thread /r /p 0xffffffffffa00020 ; kb SYMBOL_NAME: win32k!HeavyFreePool+bb MODULE_NAME: win32k IMAGE_NAME: win32k.sys IMAGE_VERSION: 5.1.2600.5512 FAILURE_BUCKET_ID: 0xc2_7_win32k!HeavyFreePool+bb OSPLATFORM_TYPE: x86 OSNAME: Windows XP FAILURE_ID_HASH: {5b4031c7-0136-2cdb-8812-5705bb3a293e} Followup: MachineOwner --------- --- Сообщение объединено, 16 мар 2025 --- В той же доке: Не оно ли это --- Сообщение объединено, 16 мар 2025 --- По первому дампу add byte ptr [eax],al невалид инструкция, это область заполненная нулями. По второму nt!ExFreePoolWithTag+0x2be невалид смещение почему то, должно быть 0F3A: Код (Text): POOLCODE:004754BC call _KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x) POOLCODE:004754C1 ; --------------------------------------------------------------------------- POOLCODE:004754C1 POOLCODE:004754C1 loc_4754C1:
Код (Text): 0: kd> !analyze -show 0x8e c0000005 7ffdf221 f853e3a4 0 KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e) This is a very common bugcheck. Usually the exception address pinpoints the driver/function that caused the problem. Always note this address as well as the link date of the driver/image that contains this address. Some common problems are exception code 0x80000003. This means a hard coded breakpoint or assertion was hit, but this system was booted /NODEBUG. This is not supposed to happen as developers should never have hardcoded breakpoints in retail code, but ... If this happens, make sure a debugger gets connected, and the system is booted /DEBUG. This will let us see why this breakpoint is happening. Arguments: Arg1: ffffffffc0000005, The exception code that was not handled Arg2: 000000007ffdf221, The address that the exception occurred at Arg3: fffffffff853e3a4, Trap Frame Arg4: 0000000000000000
Marylin, Особо смотреть там нечего, управление скачет по ядру как хочет. Есть много вопросов, по самому первому крэшу на хосте. Неправильно дамп разобран, нужно заново посмотреть(как может скипаться часть кода??). На хосте адрес крэша один, стабилен. push TF/popfd не крэшит, почему только под отладчиком падает ? Собрать простейший отладчик, что бы выяснить при каких условиях возникает ошибка.. Адреса в дампе соответствуют дизу, значит ядро не патчено. В аттаче два последние дампа. --- Сообщение объединено, 16 мар 2025 --- Вот сейчас ребутнулся, в этот раз олли не упало, но повисли все апп. Затем в x32dbg бсод, но уже иная ошибка: Код (Text): DRIVER_OVERRAN_STACK_BUFFER (f7) A driver has overrun a stack-based buffer. This overrun could potentially allow a malicious user to gain control of this machine. DESCRIPTION A driver overran a stack-based buffer (or local variable) in a way that would have overwritten the function's return address and jumped back to an arbitrary address when the function returned. This is the classic "buffer overrun" hacking attack and the system has been brought down to prevent a malicious user from gaining complete control of it. Do a kb to get a stack backtrace -- the last routine on the stack before the buffer overrun handlers and BugCheck call is the one that overran its local variable(s). Arguments: Arg1: ffffed0d23108cf0, Actual security check cookie from the stack Arg2: 000073157356749f, Expected security check cookie Arg3: ffff8cea8ca98b60, Complement of the expected security check cookie Arg4: 0000000000000000, zero BUGCHECK_CODE: f7 BUGCHECK_P1: ffffed0d23108cf0 BUGCHECK_P2: 73157356749f BUGCHECK_P3: ffff8cea8ca98b60 BUGCHECK_P4: 0 FILE_IN_CAB: 031625-10078-01.dmp FAULTING_THREAD: ffff920a23244080 SECURITY_COOKIE: Expected 000073157356749f found ffffed0d23108cf0 BLACKBOXNTFS: 1 (!blackboxntfs) BLACKBOXPNP: 1 (!blackboxpnp) BLACKBOXWINLOGON: 1 CUSTOMER_CRASH_COUNT: 1 PROCESS_NAME: test.exe TRAP_FRAME: ffff800000000000 -- (.trap 0xffff800000000000) Unable to read trap frame at ffff8000`00000000 Resetting default scope STACK_TEXT: ffffed0d`23107a98 fffff804`04ab63c5 : 00000000`000000f7 ffffed0d`23108cf0 00007315`7356749f ffff8cea`8ca98b60 : nt!KeBugCheckEx ffffed0d`23107aa0 fffff804`049d5a8e : ffffed0d`231080b0 fffff804`048ca5df fffff804`0471bf38 00000000`00000000 : nt!_report_gsfailure+0x25 ffffed0d`23107ae0 fffff804`049d5a23 : ffffed0d`23107bb0 00000000`00000000 ffffed0d`231080e8 ffffed0d`231080c0 : nt!_GSHandlerCheckCommon+0x5a ffffed0d`23107b10 fffff804`04a07d2f : fffff804`049d5a10 00000000`00000000 00000000`00000000 00000000`00000000 : nt!_GSHandlerCheck+0x13 ffffed0d`23107b40 fffff804`048ca3c7 : ffffed0d`231080b0 00000000`00000000 ffffed0d`23108cf0 fffff804`04e88daa : nt!RtlpExecuteHandlerForException+0xf ffffed0d`23107b70 fffff804`048c94e6 : ffffed0d`23108a88 ffffed0d`231087c0 ffffed0d`23108a88 00000000`00000000 : nt!RtlDispatchException+0x297 ffffed0d`23108290 fffff804`04a1186c : 00000000`00001000 ffffed0d`23108b30 ffff8000`00000000 00000000`00000000 : nt!KiDispatchException+0x186 ffffed0d`23108950 fffff804`04a0d2bd : ffff920a`23244080 00000000`00000002 00000000`00000000 fffff804`05247960 : nt!KiExceptionDispatch+0x12c ffffed0d`23108b30 fffff804`0481dfba : ffff920a`23244080 fffff804`04e88da5 00000000`00000010 00000000`00000246 : nt!KiPageFault+0x43d ffffed0d`23108cc0 fffff804`04e88daa : fffff804`05247960 ffff920a`00000000 00000000`00000000 ffffed0d`23108fa0 : nt!ExReleaseFastMutex+0xa ffffed0d`23108cf0 00000000`00000001 : 00000000`0009fda0 ffffed0d`23109a58 ffff920a`26462080 ffff920a`26462080 : nt!DbgkpQueueMessage+0x222 ffffed0d`23108ef0 00000000`0009fda0 : ffffed0d`23109a58 ffff920a`26462080 ffff920a`26462080 00000000`00000001 : 0x1 ffffed0d`23108ef8 ffffed0d`23109a58 : ffff920a`26462080 ffff920a`26462080 00000000`00000001 fffff804`04e8a868 : 0x9fda0 ffffed0d`23108f00 ffff920a`26462080 : ffff920a`26462080 00000000`00000001 fffff804`04e8a868 00000000`00000000 : 0xffffed0d`23109a58 ffffed0d`23108f08 ffff920a`26462080 : 00000000`00000001 fffff804`04e8a868 00000000`00000000 00000000`00000000 : 0xffff920a`26462080 ffffed0d`23108f10 00000000`00000001 : fffff804`04e8a868 00000000`00000000 00000000`00000000 00000000`00000000 : 0xffff920a`26462080 ffffed0d`23108f18 fffff804`04e8a868 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x1 ffffed0d`23108f20 fffff804`04e29b31 : ffff920a`2675c2b0 ffffed0d`23109070 ffff920a`26462080 00000000`00000000 : nt!DbgkpSendApiMessage+0xa4 ffffed0d`23108f70 fffff804`048c9694 : ffffed0d`23109a58 ffffed0d`23109a58 ffffed0d`23109120 00000000`00401000 : nt!DbgkForwardException+0xfa161 ffffed0d`231090f0 fffff804`04a1186c : 00000000`00001000 ffffed0d`23109b00 ffff8000`00000000 00000000`00000000 : nt!KiDispatchException+0x334 ffffed0d`23109920 fffff804`04a0d2bd : ffff920a`23244080 00000000`00000006 ffffed0d`00000000 ffff920a`00000000 : nt!KiExceptionDispatch+0x12c ffffed0d`23109b00 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiPageFault+0x43d SYMBOL_NAME: nt!_report_gsfailure+25 MODULE_NAME: nt IMAGE_NAME: ntkrnlmp.exe IMAGE_VERSION: 10.0.19041.3570 STACK_COMMAND: .process /r /p 0xffff920a26462080; .thread 0xffff920a23244080 ; kb BUCKET_ID_FUNC_OFFSET: 25 FAILURE_BUCKET_ID: 0xF7_MISSING_GSFRAME_nt!_report_gsfailure OS_VERSION: 10.0.19041.1 BUILDLAB_STR: vb_release OSPLATFORM_TYPE: x64 OSNAME: Windows 10 FAILURE_ID_HASH: {82d2c1b5-b0cb-60a5-9a5d-78c8c4284f84} Followup: MachineOwner --------- И опять эти Dbgkp* Если бы сразу управление прыгало вникуда, небыло бы связанного бэктрейса. Не знаю даже, какие то чудеса. --- Сообщение объединено, 16 мар 2025 --- Ещё раз, w32dbg, push 0/popfd/nop: Код (Text): SYSTEM_SERVICE_EXCEPTION (3b) An exception happened while executing a system service routine. Arguments: Arg1: 00000000c0000005, Exception code that caused the BugCheck Arg2: fffff8004101be7b, Address of the instruction which caused the BugCheck Arg3: ffffb183d9d37d30, Address of the context record for the exception that caused the BugCheck Arg4: 0000000000000000, zero. BUGCHECK_CODE: 3b BUGCHECK_P1: c0000005 BUGCHECK_P2: fffff8004101be7b BUGCHECK_P3: ffffb183d9d37d30 BUGCHECK_P4: 0 FILE_IN_CAB: 031625-9546-01.dmp FAULTING_THREAD: ffff8e8409331080 CONTEXT: ffffb183d9d37d30 -- (.cxr 0xffffb183d9d37d30) rax=00000000000001d2 rbx=0000000000000000 rcx=ffffb183d9d388f0 rdx=0000000000000000 rsi=0000000000000002 rdi=ffff8e8409331180 rip=fffff8004101be7b rsp=ffffb183d9d38730 rbp=0000000000000000 r8=0000000000000001 r9=00000000000000a4 r10=0000000000000000 r11=fffff80040e00000 r12=0000000000000001 r13=0000000000000000 r14=ffff8e84093311c0 r15=0000000000000000 iopl=0 nv up ei pl zr na po nc cs=0010 ss=0000 ds=002b es=002b fs=0053 gs=002b efl=00010246 nt!KiSwapThread+0x6db: fffff800`4101be7b c6401104 mov byte ptr [rax+11h],4 ds:002b:00000000`000001e3=?? Resetting default scope BLACKBOXNTFS: 1 (!blackboxntfs) BLACKBOXPNP: 1 (!blackboxpnp) BLACKBOXWINLOGON: 1 CUSTOMER_CRASH_COUNT: 1 PROCESS_NAME: x32dbg.exe STACK_TEXT: ffffb183`d9d38730 fffff800`4101b1cf : ffff8e84`09331080 ffff8e84`0000053c ffffb183`d9d388f0 00000000`00000000 : nt!KiSwapThread+0x6db ffffb183`d9d387e0 fffff800`4101aa73 : 00000000`000000a4 fffff800`00000000 8e8409e5`f0500001 ffff8e84`093311c0 : nt!KiCommitThreadWait+0x14f ffffb183`d9d38880 fffff800`41689d21 : ffff8e84`08914a50 00000000`00000000 ffffb183`d9d38b01 ffff8e84`02aae001 : nt!KeWaitForSingleObject+0x233 ffffb183`d9d38970 fffff800`41210ef5 : ffff8e84`09331080 00007ffe`13cfb3f0 00000000`00000000 ffff8e84`08914a50 : nt!NtWaitForDebugEvent+0x261 ffffb183`d9d38b00 00007ffe`14ff0a34 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x25 00000000`0669e2e8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffe`14ff0a34 SYMBOL_NAME: nt!KiSwapThread+6db MODULE_NAME: nt IMAGE_NAME: ntkrnlmp.exe IMAGE_VERSION: 10.0.19041.3570 STACK_COMMAND: .cxr 0xffffb183d9d37d30 ; kb BUCKET_ID_FUNC_OFFSET: 6db FAILURE_BUCKET_ID: AV_nt!KiSwapThread OS_VERSION: 10.0.19041.1 BUILDLAB_STR: vb_release OSPLATFORM_TYPE: x64 OSNAME: Windows 10 FAILURE_ID_HASH: {3a5eca23-a992-0c0e-a0ce-d48add0d8eda} Followup: MachineOwner --------- - вновь шедулер на той же самой инструкции.
Ahimov, подключи ядерный отладчик к вбоксу и глянь пошагово от Dbgkp*, что там происходит, в какой момент что портится
HoShiMin, vbox не запускается, поэтому я из образа вытащил дампы архиватором. Получилось вчера фаул при запуске, но к удивлению сегодня завелось. Крэшнул и больше не работает, я пробовал откатить версию, но ничего он не работает. На варе таже беда, видимо при падении портятся сами апп. Поэтому я ранее и говорил что нужно как давно два компа кабелем соединять ну и по старинке.. --- Сообщение объединено, 16 мар 2025 --- Как я про эррату почитал, что то уже сомневаюсь что отладка поможет. Оно пройдёт норм при трассировке скорее всего. --- Сообщение объединено, 17 мар 2025 --- Ну раз нет идей, то думаю так. Какой бы непонятной, сложной была ситуация, некоторый процесс/состояние системы абстрактно говоря. Пусть невозможно применить инструментальные методы, но всегда есть метод ограничения. Ввести систему в необходимое состояние и постепенно убирать из этого те факторы, которые которые на неё не влияют. Пусть падает отладчик, можно выяснить какие сервисы приводят к падению, может их последовательность. Это не тупик, я думаю так
TrashGen, > попробую уточнить: так авер всё или не всё? Всё. Авер не совместим с бинарной трансляцией, с приходом визоров понятия эмуляции не осталось. А это значит что сигнатурный анализ невозможен в динамике. Осталась только проактивная защита.
Простой дебаг цикл: Код (Text): WaitForDebugEvent() if EXCEPTION_DEBUG_EVENT if STATUS_PRIVILEGED_INSTRUCTION Msg(CONTEXT.rEip) CONTEXT.rEip ++ CONTEXT.rEFlags | TF fi if EXCEPTION_SINGLE_STEP Msg(CONTEXT.rEip) CONTEXT.rEFlags | TF fi fi ContinueDebugEvent() Не крэшит, оно так и в отладчике при трейсе. Наверно точки останова нужны.. Такое не падает ни в отладчике, ни при трейсе: Код (Text): push 100h popfd int 3 С int3(CC) тоже не падает. --- Сообщение объединено, 22 мар 2025 в 16:05 --- Если отладчик им же посмотреть, то тоже не падает. Получается олли popf не трассирует(EF: 246), записывает CC на следующие инструкции: NtWriteVM. Далее идёт NtFlushVM - NtSetCTX - NtResumeThread - NtDebugContinue. Но даже без останова не падает, если прямо под олли шагнуть, тогда падает --- Сообщение объединено, 22 мар 2025 в 16:18 --- А нет, олли на хосте вообще не падает, это на вирте. На x32dbg как обычно: Код (Text): PROCESS_NAME: x32dbg.exe STACK_TEXT: ffffe084`14f31730 fffff802`7aa1b1cf : ffff968a`05d28080 ffff968a`000013c0 ffffe084`14f318f0 00000000`00000000 : nt!KiSwapThread+0x6db --- Сообщение объединено, 22 мар 2025 в 16:24 --- ida так же крэшит. --- Сообщение объединено, 22 мар 2025 в 16:39 --- x32dbg не использует NtWriteVM, вызывает только NtSetCtx(CONTEXT_CONTROL, EF: TF) и бсодит на NtResumeThread. --- Сообщение объединено, 22 мар 2025 в 16:42 --- Код (Text): PAGE_FAULT_IN_NONPAGED_AREA (50) Invalid system memory was referenced. This cannot be protected by try-except. Typically the address is just plain bad or it is pointing at freed memory. Arguments: Arg1: fffff684a2ed6698, memory referenced. Arg2: 0000000000000011, X64: bit 0 set if the fault was due to a not-present PTE. bit 1 is set if the fault was due to a write, clear if a read. bit 3 is set if the processor decided the fault was due to a corrupted PTE. bit 4 is set if the fault was due to attempted execute of a no-execute PTE. - ARM64: bit 1 is set if the fault was due to a write, clear if a read. bit 3 is set if the fault was due to attempted execute of a no-execute PTE. Arg3: fffff684a2ed6698, If non-zero, the instruction address which referenced the bad memory address. Arg4: 0000000000000002, (reserved) Debugging Details: ------------------ BUGCHECK_CODE: 50 BUGCHECK_P1: fffff684a2ed6698 BUGCHECK_P2: 11 BUGCHECK_P3: fffff684a2ed6698 BUGCHECK_P4: 2 FILE_IN_CAB: 032225-9562-01.dmp FAULTING_THREAD: ffffd1026e858080 WRITE_ADDRESS: fffff8024eefb390: Unable to get MiVisibleState Unable to get NonPagedPoolStart Unable to get NonPagedPoolEnd Unable to get PagedPoolStart Unable to get PagedPoolEnd unable to get nt!MmSpecialPagesInUse fffff684a2ed6698 LEGACY_PAGE_TABLE_ACCESS: 1 MM_INTERNAL_CODE: 2 BLACKBOXNTFS: 1 (!blackboxntfs) BLACKBOXPNP: 1 (!blackboxpnp) BLACKBOXWINLOGON: 1 CUSTOMER_CRASH_COUNT: 1 PROCESS_NAME: test.exe TRAP_FRAME: ffff800000000000 -- (.trap 0xffff800000000000) Unable to read trap frame at ffff8000`00000000 Resetting default scope STACK_TEXT: fffff684`a2ed6258 fffff802`4e638cbf : 00000000`00000050 fffff684`a2ed6698 00000000`00000011 fffff684`a2ed6500 : nt!KeBugCheckEx fffff684`a2ed6260 fffff802`4e430730 : 04410443`043f043e 00000000`00000011 fffff684`a2ed6580 00000000`00000000 : nt!MiSystemFault+0x1de34f fffff684`a2ed6360 fffff802`4e60d1d8 : 0020044c`04420438 04360443`043b0441 00440020`04430431 1d010000`0053004e : nt!MmAccessFault+0x400 fffff684`a2ed6500 fffff684`a2ed6698 : fffff802`4e607daf fffff802`4e607daf fffff684`a2ed6720 fffff802`4e4c94e6 : nt!KiPageFault+0x358 fffff684`a2ed6690 fffff802`4e607daf : fffff802`4e607daf fffff684`a2ed6720 fffff802`4e4c94e6 00000000`00000000 : 0xfffff684`a2ed6698 fffff684`a2ed6698 fffff684`a2ed6c90 : fffff802`4e429484 fffff684`a2ed7480 00000013`00000000 fffff684`a2ed7480 : nt!RtlpExecuteHandlerForUnwind+0xf fffff684`a2ed66c8 fffff802`4e429484 : fffff684`a2ed7480 00000013`00000000 fffff684`a2ed7480 fffff802`4e2d11e4 : 0xfffff684`a2ed6c90 fffff684`a2ed66d0 fffff802`4e5d0205 : fffff802`4e266d74 fffff802`00000001 fffff684`a2ed7fe0 fffff684`a2ed9000 : nt!RtlUnwindEx+0x2c4 fffff684`a2ed6df0 fffff802`4e607d2f : fffff802`4e2d11b4 fffff684`a2ed73d0 fffff802`4e5d0120 00000000`00000000 : nt!_C_specific_handler+0xe5 fffff684`a2ed6e60 fffff802`4e4ca3c7 : fffff684`a2ed73d0 00000000`00000000 fffff684`a2ed75e0 fffff802`4e4c914e : nt!RtlpExecuteHandlerForException+0xf fffff684`a2ed6e90 fffff802`4e4c94e6 : fffff684`a2ed7da8 fffff684`a2ed7ae0 fffff684`a2ed7da8 fffff684`a2ed8120 : nt!RtlDispatchException+0x297 fffff684`a2ed75b0 fffff802`4e61186c : 00000000`00001000 fffff684`a2ed7e50 ffff8000`00000000 00000000`00000000 : nt!KiDispatchException+0x186 fffff684`a2ed7c70 fffff802`4e60d2bd : 00000000`00000000 00000000`00000000 ffffd102`6e858080 fffff684`a2ed8b00 : nt!KiExceptionDispatch+0x12c fffff684`a2ed7e50 fffff802`4e4c914e : 00000000`0040100e 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiPageFault+0x43d fffff684`a2ed7fe0 fffff802`4e4c9a2f : fffff684`a2ed8a58 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiOpDecode+0x136 fffff684`a2ed8040 fffff802`4e4c94a1 : fffff684`a2ed8a58 fffff684`a2ed8790 fffff684`a2ed8120 00000000`00401003 : nt!KiPreprocessFault+0xbf fffff684`a2ed80f0 fffff802`4e61186c : 00000000`00001000 fffff684`a2ed8b00 ffff8000`00000000 00000000`00000000 : nt!KiDispatchException+0x141 fffff684`a2ed8920 fffff802`4e60d2bd : ffffd102`6e858080 00000000`00000000 00000000`00000000 ffffd102`00000000 : nt!KiExceptionDispatch+0x12c fffff684`a2ed8b00 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiPageFault+0x43d SYMBOL_NAME: nt!MiSystemFault+1de34f MODULE_NAME: nt IMAGE_VERSION: 10.0.19041.3570 STACK_COMMAND: .process /r /p 0xffffd1026ed3e080; .thread 0xffffd1026e858080 ; kb IMAGE_NAME: ntkrnlmp.exe BUCKET_ID_FUNC_OFFSET: 1de34f FAILURE_BUCKET_ID: AV_X_(null)_nt!MiSystemFault OS_VERSION: 10.0.19041.1 BUILDLAB_STR: vb_release OSPLATFORM_TYPE: x64 OSNAME: Windows 10 FAILURE_ID_HASH: {49578414-34a9-c6dc-c795-b8c5552d5975} Followup: MachineOwner --------- --- Сообщение объединено, 22 мар 2025 в 17:04 --- Наконец воспроизвелось: Код (Text): invoke GetStartupInfo,addr Sinfo invoke CreateProcess, addr Name$, NULL, NULL, NULL, FALSE, DEBUG_PROCESS + DEBUG_ONLY_THIS_PROCESS, NULL, NULL, addr Sinfo, addr Ps .while TRUE invoke WaitForDebugEvent, addr DbEvent, INFINITE .if DbEvent.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT .break .elseif DbEvent.dwDebugEventCode == EXCEPTION_DEBUG_EVENT .if DbEvent.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_BREAKPOINT .elseif DbEvent.u.Exception.pExceptionRecord.ExceptionCode == STATUS_PRIVILEGED_INSTRUCTION mov Ctx.ContextFlags, CONTEXT_CONTROL invoke GetThreadContext, Ps.ThreadHandle, addr Ctx %DBG "#GP 0x%X", Ctx.rEip inc Ctx.rEip or Ctx.rEFlags, 100h invoke SetThreadContext, Ps.ThreadHandle, addr Ctx invoke ZwResumeThread, Ps.ThreadHandle, addr Scount .elseif DbEvent.u.Exception.pExceptionRecord.ExceptionCode == EXCEPTION_SINGLE_STEP mov Ctx.ContextFlags, CONTEXT_CONTROL invoke GetThreadContext, Ps.ThreadHandle, addr Ctx %DBG "#DB 0x%X", Ctx.rEip or Ctx.rEFlags, 100h invoke SetThreadContext, Ps.ThreadHandle, addr Ctx invoke ZwResumeThread, Ps.ThreadHandle, addr Scount .endif .endif invoke ContinueDebugEvent, DbEvent.dwProcessId, DbEvent.dwThreadId, DBG_CONTINUE .endw Код (Text): hlt push 0 popfd nop - без NtResume не крэшит, хотя должно: NtDebugContinue -> DbgkpWakeTarget -> PsResumeThread NtResumeThread -> PsResumeThread
alex_dz, Если попробовать resumethread без отладочных апи: Код (Text): Thread proc p1:DWORD nop nop nop nop push 100h popfd nop nop Tip: push 0 Tbsod:: popfd nop nop Tend:: jmp $ Thread endp VEH proc Xcpt:PEXCEPTION_POINTERS mov eax,Xcpt mov eax,EXCEPTION_POINTERS.ContextRecord[eax] lea ecx,Tend xchg CONTEXT.rEip[eax],ecx %DBG "#DB 0x%X", Ecx mov CONTEXT.rEax[eax],ecx mov Etrap,1 mov eax,EXCEPTION_CONTINUE_EXECUTION ret VEH endp EP proc Local Scount:ULONG invoke AddVectoredExceptionHandler, 1, addr VEH invoke CreateThread, 0, 0, addr Thread, 0, 0, addr Tid mov Thd,eax Iter: .repeat invoke Sleep, 5000 .until Etrap invoke ZwSuspendThread, Thd, addr Scount mov Ctx.ContextFlags,CONTEXT_ALL invoke GetThreadContext, Thd, addr Ctx mov Etrap,0 mov eax,Ctx.rEax or Ctx.rEFlags,100h mov Ctx.rEip,eax invoke SetThreadContext, Thd, addr Ctx invoke ZwResumeThread, Thd, addr Scount %DBG " - 0x%X", Ctx.rEip jmp Iter - не падает. Если под олли2 запустить бсодит на Tbsod. --- Сообщение объединено, 22 мар 2025 в 22:06 --- HoShiMin, Посмотрите выше, пока выяснилось это, хоть уже что то..
А что это за адрес? 0xfffff684`a2ed6698 Какой-то ядерный, но для него не нашлись символы (смотрю трейс в этом сообщении). Кому он принадлежит? --- Сообщение объединено, 23 мар 2025 в 00:20 --- Upd., а, не заметил сразу - они смотрят на стек
HoShiMin, Одни и теже дампы, вот за сегодня. Баг процессорный, разбор дампов врядле что то даст. Думаю лишь экспериментально можно выяснить. Проц ведёт себя не предсказуемо, но стабильно по крэшам. Вот что выше: Код (Text): Tip: push 0 Tbsod:: popfd nop nop - на первой итерации под отладчиком падает, должно быть: Код (Text): Tip: push 0 Tbsod:: popfd nop nop jmp Tip - это крутится без задержек(без дебаг порта в общем) и не крэшит. Пока я не понимаю, но хотя бы уже как то можно тестить. Главное почему именно на загрузки флажков, при этом не важен контекст и сами флаги, инструкции тоже!?
Глянул дампы. Сомневаюсь, что баг процессорный, и, скорей всего, он вообще никак не связан с тем кодом, который ты отлаживаешь. Во всех твоих дампах ошибка DRIVER_OVERRAN_STACK_BUFFER: это когда одна из функций затёрла stack cookie, который проверяется на выходе - например, когда вышли за границы массива или записали в переменную больше, чем она занимает. У тебя в стактрейсе ошибка вылетает на ExReleaseFastMutex+0x0A - но это не он: посмотри на предыдущую инструкцию там call KeAbPostRelease - подозреваю, что это именно он портит стек. И всё было бы хорошо с этой теорией, если бы не одно но: ни ExReleaseFastMutex, ни KeAbPostRelease не проверяют stack cookie! Он проверяется во внешней DbgkpQueueMessage, но по стактрейсу мы до проверки не доходим. Но всё равно, сама ошибка явно намекает на то, что где-то портится стек. Идём далее: твой трейс в твоём предыдущем посте. Там ошибка другая - обычный PF. Там попытались обратиться к адресу: Arg1: fffff684a2ed6698, memory referenced. Но тоже странность: этот адрес принадлежит нашему ядерному стеку: fffff684`a2ed6698 fffff684`a2ed6c90 : fffff802`4e429484 fffff684`a2ed7480 00000013`00000000 fffff684`a2ed7480 : nt!RtlpExecuteHandlerForUnwind+0xf Короче говоря, кто-то упорно портит стек.