Crate kdmp_parser

source ·
Expand description


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.


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>

          The dump path

          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

          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

          Dump the list of kernel & user modules

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version





  • Strong type for Guest Physical Addresses.
  • Strong type for Guest Virtual Addresses.
  • 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.
  • 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.
  • Strong type for a Page Frame Number.
  • A Pxe is a set of flags (PxeFlags) and a Page Frame Number (PFN). This representation takes more space than a regular PXE but it is more convenient to split the flags / the pfn as bitflags! doesn’t seem to support bitfields.
  • The various bits and flags that a Pxe has.



  • Utility trait to make it easier to extract ranges of bits.
  • A bunch of useful methods to manipulate 64-bit addresses of any kind.

Type Aliases§