Expand description
kdmp-parser
A KISS Rust crate to parse Windows kernel crash-dumps created by Windows & its debugger.
This is a cross-platform crate that parses Windows kernel crash-dumps that Windows / WinDbg generates. It exposes read-only access to the physical memory pages as well as the register / exception context. It can also read virtual memory addresses by walking the page tables.
Compiled binaries are available in the releases section.
§Parser
The parser application is a small utility to show-case how to use the library and demonstrate its features. You can use it to dump memory, etc.
Here are the options supported:
A KISS Rust crate to parse Windows kernel crash-dumps created by Windows & its debugger.
Usage: parser.exe [OPTIONS] <DUMP_PATH>
Arguments:
<DUMP_PATH>
The dump path
Options:
--dump-headers
Dump the dump headers
-c, --context-record
Dump the context record
-e, --exception-record
Dump the exception record
-m, --mem[=<MEM>]
Dump the first `len` bytes of every physical pages, unless an address is specified
--virt
The address specified is interpreted as a virtual address, not a physical address
--len <LEN>
The number of bytes to dump out
[default: 16]
-r, --reader <READER>
Reader mode
[default: mmap]
Possible values:
- mmap: The crash-dump is memory-mapped
- file: The crash-dump is read as a file on disk
--modules
Dump the list of kernel & user modules
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
§Authors
- Axel ‘@0vercl0k’ Souchet
§Contributors
Structs§
- Context
- Gpa
- Strong type for Guest Physical Addresses.
- Gva
- Strong type for Guest Virtual Addresses.
- Header64
- Adjusted C struct for
DUMP_HEADERS64
from MS Rust docs. Padding adjustment added from reversingnt!IoFillDumpHeader
. - Kernel
Dump Parser - A kernel dump parser that gives access to the physical memory space stored in the dump. It also offers virtual to physical memory translation as well as a virtual read facility.
- Mapped
File Reader - A memory mapped file reader is basically a slice of bytes over the memory mapping and a cursor to be able to access the region.
- Pfn
- Strong type for a Page Frame Number.
- Pxe
- A
Pxe
is a set of flags (PxeFlags
) and a Page Frame Number (PFN). This representation takes more space than a regularPXE
but it is more convenient to split the flags / the pfn asbitflags!
doesn’t seem to support bitfields. - PxeFlags
- The various bits and flags that a
Pxe
has.
Enums§
- Addr
Translation Error - Dump
Type - Types of kernel crash dump.
- Kdmp
Parser Error - PxeNot
Present
Traits§
- Bits
- Utility trait to make it easier to extract ranges of bits.
- Gxa
- A bunch of useful methods to manipulate 64-bit addresses of any kind.
- Reader