Minidump Files ((new)) — Reading
HANDLE hFile = CreateFile(L"crash.dmp", GENERIC_READ, ...); HANDLE hDump = NULL; BOOL ok = MiniDumpReadDumpStream(hDump, 0, &StreamType, NULL, &pContext, &pRaw); For cross‑platform analysis, use libkdump (Linux) or pyminidump :
typedef struct _MINIDUMP_DIRECTORY ULONG32 StreamType; // ThreadList, ModuleList, MemoryList, Exception, etc. RVA LocationRva; ULONG32 LocationSize; MINIDUMP_DIRECTORY; | Stream Type | Content | |-------------|---------| | ThreadListStream | Thread contexts (registers, stack pointers) | | ModuleListStream | Loaded DLLs and EXEs (names, base addresses, sizes) | | MemoryListStream | Raw memory ranges saved (stack, heap, etc.) | | ExceptionStream | Exception record and thread ID that crashed | | SystemInfoStream | OS version, processor architecture | | MiscInfoStream | Process IDs, creation time, command line | 3. Reading a Minidump Programmatically Manual hex analysis is impractical. Use established libraries or tools. 3.1 Using Windows API (DbgHelp) Microsoft provides MiniDumpReadDumpStream and MiniDumpWriteDump . Example to open and iterate streams: reading minidump files
import minidump d = minidump.Minidump("crash.dmp") for module in d.modules: print(hex(module.base_addr), module.name) for thread in d.threads: print(thread.thread_id, hex(thread.stack.start)) Volatility 3 supports minidump as a memory sample: HANDLE hFile = CreateFile(L"crash
Abstract Minidump files are critical artifacts in Windows incident response and debugging. This paper provides a technical overview of the minidump file format, explains its internal structure (based on the MINIDUMP_HEADER and subsequent streams), and presents practical methodologies for extracting key forensic data—such as running processes, loaded modules, memory regions, and exception records. The paper concludes with case studies illustrating how minidumps are used in crash analysis and malware investigation. 1. Introduction When a Windows application crashes or the system encounters a Stop Error (Blue Screen of Death), the operating system can generate a minidump file (typically .dmp or .mdmp ). Unlike a full memory dump, a minidump is compact (often <1 MB) yet contains critical information: the exception context, stack traces of the crashing thread, loaded drivers, and process environment. Use established libraries or tools