AWMDA Version 6 Part 1 Slides
AWMDA Version 6 Part 1 Slides
Accelerated
Version 6
Part 1: Process User Space
Dmitry Vostokov
Software Diagnostics Services
WinDbg Commands
Prerequisites We use these boxes to
introduce WinDbg commands
used in practice exercises
User Space
00007FFF`FFFFFFFF
FFFF8000`00000000
Kernel Space
FFFFFFFF`FFFFFFFF
User Space
7FFFFFFF
80000000
Kernel Space
FFFFFFFF
Notepad Notepad.exe
user32.dll
user32 win32u.dll
kernel32
ntdll ntdll.dll
00007FFF`FFFFFFFF
FFFF8000`00000000
Kernel Space
FFFFFFFF`FFFFFFFF
Notepad Notepad.exe
user32.dll
kernel32 win32u.dll
win32u
ntdll ntdll.dll
7FFFFFFF
80000000
Kernel Space
FFFFFFFF
User Space
00007FFF`FFFFFFFF
FFFF8000`00000000
Driver.sys
Kernel Space
nt
Ntoskrnl.exe
Driver
FFFFFFFF`FFFFFFFF
User Space
7FFFFFFF
80000000
nt
Driver.sys
Kernel Space
Ntoskrnl.exe
Driver
FFFFFFFF
00007FF6`00000000
Notepad
user32
kernel32
00000000`00000000 ...
ntdll
00007FFF`FFFFFFFF FFFFFFFF`FFFFFFFF
FFFF8000`00000000
Kernel Space
nt
Driver
FFFFFFFF`FFFFFFFF
Notepad
kernel32
win32u
nt
Kernel Space
Driver
FFFFFFFF
kernel32
user32
win32u
ntdll_77b00000
00000000`FFFFFFFF
User Space (PID 9940)
00007FFF`DBE65000
wow64
ntdll
00007FFF`FFFFFFFF
FFFF8000`00000000
Kernel Space
nt
Driver
FFFFFFFF`FFFFFFFF
00007FF6`00000000
Notepad
Notepad.dmp
User Space (PID 7212)
win32u
user32
kernel32
ntdll
00007FFF`FFFFFFFF
FFFF8000`00000000
WinDbg Commands
Kernel Space
lmv command lists modules
nt
and their description
Driver
FFFFFFFF`FFFFFFFF
Notepad
kernel32
win32u
ntdll
7FFFFFFF
80000000
nt
WinDbg Commands
Kernel Space
lmv command lists modules
and their description
Driver
FFFFFFFF
kernel32
user32
win32u
ntdll_77b00000
00000000`FFFFFFFF Notepad.dmp
User Space (PID 9940)
00007FFF`DBE65000
wow64
ntdll
00007FFF`FFFFFFFF
FFFF8000`00000000
WinDbg Commands
Kernel Space
lmv command lists modules
nt
and their description
Driver
FFFFFFFF`FFFFFFFF
nt
Kernel Space
Driver
TID TID
102 204 WinDbg Commands
User Space (PID 306)
User Stack for TID 204 Process dumps:
User Stack for TID 102 !teb
user32 Data:
dc / dps / dpp / dpa / dpu
ntdll
nt
Kernel Space
Kernel Stack for TID 102
Driver
Module!FunctionA
Module!FunctionB
Return address Module!FunctionA+110
Module!FunctionC
Module!FunctionD
FunctionC()
{
Return address Module+32220 ... No symbols for Module
FunctionD();
...
}
Module+22000
Module+54000
ApplicationA
user32
ntdll
user32
ntdll
Problem Resolution
Debugging Strategy
Checklist: http://www.dumpanalysis.org/windows-memory-analysis-checklist
Patterns: http://www.dumpanalysis.org/blog/index.php/crash-dump-analysis-patterns/
Counter: RCX
Stack: RSP
Examples:
RSP-0x20 → [RSP-0x20]
RSP-0x18 → [RSP-0x18]
Stack grows
RSP-0x10 → [RSP-0x10]
RSP-0x8 → [RSP-0x8]
RSP → [RSP]
RSP+0x8 → [RSP+0x8]
RSP+0x10 → [RSP+0x10]
RSP+0x18 → [RSP+0x18]
RSP+0x20 → [RSP+0x20]
Higher addresses
© 2023 Software Diagnostics Services
Memory Cell Sizes
RSP → BYTE PTR [RSP]
RSP+0x8 →
RSP+0x8 →
RSP+0x8 →
Opcode DST
Examples:
Opcode DST|SRC
Examples:
Examples:
WinDbg Commands
0:000> kv
# Child-SP RetAddr : Args to Child : Call Site
…
Included in Exercise 0
Exercise Transcripts:
\AWMDA-Dumps\Exercise-0-Download-Setup-WinDbg.pdf
Exercises P1 – P21
\AWMDA-Dumps\Exercise-P1-Analysis-normal-process-dump-
wordpad-64.pdf
\AWMDA-Dumps\Exercise-P2-Analysis-normal-process-dump-
wordpad-32.pdf
\AWMDA-Dumps\Exercise-P3-Analysis-normal-process-dump-
msedge-64.pdf
\AWMDA-Dumps\Exercise-P4-Analysis-process-dump-AppK-64-
no-symbols.pdf
\AWMDA-Dumps\Exercise-P5-Analysis-process-dump-AppK-64-
with-symbols.pdf
\AWMDA-Dumps\Exercise-P6-Analysis-process-dump-AppL-
64.pdf
\AWMDA-Dumps\Exercise-P7-Analysis-process-dump-AppL2-
64.pdf
\AWMDA-Dumps\Exercise-P8-Analysis-process-dump-AppM-
64.pdf
\AWMDA-Dumps\Exercise-P9-Analysis-process-dump-AppN-
64.pdf
Thread 1
(owns)
Thread 2
(owns)
Thread 2
Critical Section
00007ff75e9b2700
Thread 1
(waiting)
\AWMDA-Dumps\Exercise-P10-Analysis-process-dump-AppO-
64.pdf
\AWMDA-Dumps\Exercise-P11-Analysis-process-dump-AppP-
64.pdf
\AWMDA-Dumps\Exercise-P12-Analysis-process-dump-AppR2-
64.pdf
\AWMDA-Dumps\Exercise-P13-Analysis-process-dump-AppA-
WOW64.pdf
\AWMDA-Dumps\Exercise-P14-Analysis-process-dump-
AppS-64.pdf
EXE DLL
Data types
\AWMDA-Dumps\Exercise-P15-Analysis-process-dump-notepad-
32.pdf
\AWMDA-Dumps\Exercise-P16-Analysis-process-dump-notepad-
64.pdf
\AWMDA-Dumps\Exercise-P17-Analysis-process-dump-AppQ-
32.pdf
\AWMDA-Dumps\Exercise-P18-Analysis-process-dump-AppQ-
64.pdf
\AWMDA-Dumps\Exercise-P19-Analysis-process-dump-AppT-
64.pdf
\AWMDA-Dumps\Exercise-P20-Analysis-process-dump-ServiceA-
64.pdf
\AWMDA-Dumps\Exercise-P21-Analysis-process-dump-rusty.pdf
http://www.dumpanalysis.org/blog/index.php/pattern-cooperation/
Advanced Windows Memory Dump Analysis with Data Structures, 4th Edition, Revised