Skip to content

A Rust crate to parse user-mode minidump files generated on Windows

License

Notifications You must be signed in to change notification settings

joaoviictorti/userdmp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

userdmp 🦀

Rust crate docs Forks Stars License

userdmp is library in Rust for parsing Minidump (.dmp) files generated in user mode on Windows

Table of Contents

Features

  • Module List Stream (ModuleListStream): Contains information about all loaded modules (e.g., DLLs), including their file paths, base addresses, and sizes.
  • Handle Data Stream (HandleDataStream): Captures details about open handles in the process, such as references to files, threads, and synchronization objects.
  • System Info Stream (SystemInfoStream): Includes metadata about the operating system (e.g., version, build number) and hardware (e.g., CPU type and number of processors).
  • Exception Stream (ExceptionStream): Records details about the exception that triggered the dump, including the exception code, address, and relevant parameters.
  • Memory Stream (MemoryListStream / MemoryInfoListStream): Provides a list of memory regions that were included in the dump, allowing analysis of process memory contents at the time of the crash.

Installation

Add userdmp to your project by updating your Cargo.toml:

cargo add userdmp

Or manually add the dependency:

[dependencies]
userdmp = "<version>"

Usage

The userdmp library provides tools to parse and analyze Minidump (.dmp) files generated in user mode on Windows. Here's how you can use it:

Parsing a Minidump File

To start working with a Minidump file, use the UserDump::new function to parse the file and create a UserDump instance:

use userdmp::{UserDump, UserDmpError};

fn main() -> Result<(), UserDmpError> {
    // Parse the Minidump file
    let dump = UserDump::new("example.dmp")?;
    println!("Minidump parsed successfully!");

    Ok(())
}

For more examples, see the examples folder in this repository. 📂

Contributing to userdmp

To contribute to userdmp, follow these steps:

  1. Fork this repository.
  2. Create a branch: git checkout -b <branch_name>.
  3. Make your changes and commit them: git commit -m '<commit_message>'.
  4. Push your changes to your branch: git push origin <branch_name>.
  5. Create a pull request.

Alternatively, consult the GitHub documentation on how to create a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A Rust crate to parse user-mode minidump files generated on Windows

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages