Просмотр управляемого стека из полного дампа памяти
Предполагается, что мой управляемый процесс вызвал BSOD на клиентском сайте. Я получил полный дамп памяти (то есть: включая ядро, только физические страницы) - но все еще не в состоянии проверить стеки моего процесса.
После переключения на мой контекст процесса -
.process /p /r <MyProcAddress>
Я вижу только -
1: kd> k
# ChildEBP RetAddr
00 b56e3b70 81f2aa5d nt!KeBugCheckEx+0x1e
01 b56e3b94 81e7b68d nt!PspCatchCriticalBreak+0x71
02 b56e3bc4 81e6dfd1 nt!PspTerminateAllThreads+0x2d
03 b56e3bf8 8d48159a nt!NtTerminateProcess+0xcd
WARNING: Stack unwind information not available. Following frames may be wrong.
04 b56e3c24 81c845e4 klif+0x7559a
05 b56e3c24 77da6bb4 nt!KiSystemServicePostCall
06 0262f34c 00220065 ntdll!KiFastSystemCallRet
07 0262f390 003e0022 0x220065
08 0262f394 0073003c 0x3e0022
09 0262f398 00730079 0x73003c
0a 0262f39c 006e003a 0x730079
0b 0262f3a0 006d0061 0x6e003a
0c 0262f3a4 00200065 0x6d0061
0d 0262f3a8 00610076 0x200065
0e 0262f3ac 0075006c 0x610076
0f 0262f3b0 003d0065 0x75006c
10 0262f3b4 00770022 0x3d0065
11 0262f3b8 006e0069 0x770022
12 0262f3bc 006f0077 0x6e0069
13 0262f3c0 00640072 0x6f0077
14 0262f3c4 00200022 0x640072
...
Что естественно для управляемого процесса. Расширение SOS не работает для дампов ядра.
Что я могу сделать, чтобы просмотреть управляемый стек? Ранее было сказано, что это "намного сложнее", но, надеюсь, не невозможно.
PS. Мне известно о наличии в стеке драйвера Kaspersky driver kilf.sys, и это мой личный подозреваемый. Но вопрос более общий - надеюсь, есть способ понять, чем занимался мой процесс в то время.
1 ответ
Стек, как вы разместили, неверен
он перезаписан или является результатом какого-либо другого артефакта
с такими подробностями стека вам будет трудно расшифровать
что-нибудь полезное вообще
содержимое стека, преобразованное в диапазон для печати на английском языке, выглядит следующим образом
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 00 3E 00 22 00 22 00 65 00 73 00 3C 00 3E 00 22 .>.".".e.s.<.>."
00000010 00 73 00 79 00 73 00 3C 00 6E 00 3A 00 73 00 79 .s.y.s.<.n.:.s.y
00000020 00 6D 00 61 00 6E 00 3A 00 20 00 65 00 6D 00 61 .m.a.n.:. .e.m.a
00000030 00 61 00 76 00 20 00 65 00 75 00 6C 00 61 00 76 .a.v. .e.u.l.a.v
00000040 00 3D 00 65 00 75 00 6C 00 77 00 22 00 3D 00 65 .=.e.u.l.w.".=.e
00000050 00 6E 00 69 00 77 00 22 00 6F 00 77 00 6E 00 69 .n.i.w.".o.w.n.i
00000060 00 64 00 72 00 6F 00 77 00 20 00 22 00 64 00 72 .d.r.o.w. .".d.r
попробуйте! проанализировать -v и посмотреть, каковы результаты анализа BSOD