diff --git a/Cargo.toml b/Cargo.toml index da07081..2f076a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "userdmp" -version = "0.1.0" +version = "0.1.1" edition = "2021" description = "A library in Rust for parsing Minidump (.dmp) files generated in user mode on Windows" license = "MIT" diff --git a/README.md b/README.md index 507e5ed..5fad676 100644 --- a/README.md +++ b/README.md @@ -48,14 +48,11 @@ The userdmp library provides tools to parse and analyze Minidump (.dmp) files ge To start working with a Minidump file, use the `UserDump::new` function to parse the file and create a `UserDump` instance: ```rust, ignore -use std::path::Path; use userdmp::{UserDump, UserDmpError}; fn main() -> Result<(), UserDmpError> { - let path = Path::new("example.dmp"); - // Parse the Minidump file - let dump = UserDump::new(path)?; + let dump = UserDump::new("example.dmp")?; println!("Minidump parsed successfully!"); Ok(()) diff --git a/examples/handles/Cargo.lock b/examples/handles/Cargo.lock index 161a6e9..04c3ea8 100644 --- a/examples/handles/Cargo.lock +++ b/examples/handles/Cargo.lock @@ -131,7 +131,7 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "userdmp" -version = "0.1.0" +version = "0.1.1" dependencies = [ "binrw", "bytemuck", diff --git a/examples/handles/src/main.rs b/examples/handles/src/main.rs index 4550fea..c118e40 100644 --- a/examples/handles/src/main.rs +++ b/examples/handles/src/main.rs @@ -1,9 +1,7 @@ -use std::path::Path; use userdmp::{error::UserDmpError, UserDump}; fn main() -> Result<(), UserDmpError> { - let path = Path::new("C:\\Examples.dmp"); - let dmp = UserDump::new(path)?; + let dmp = UserDump::new("C:\\Examples.dmp")?; for(_, handle) in dmp.handles() { println!("Handle: {}", handle.handle()); diff --git a/examples/memorys/Cargo.lock b/examples/memorys/Cargo.lock index c42a9f9..0c4da9e 100644 --- a/examples/memorys/Cargo.lock +++ b/examples/memorys/Cargo.lock @@ -131,7 +131,7 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "userdmp" -version = "0.1.0" +version = "0.1.1" dependencies = [ "binrw", "bytemuck", diff --git a/examples/memorys/src/main.rs b/examples/memorys/src/main.rs index f00f7e8..71e518f 100644 --- a/examples/memorys/src/main.rs +++ b/examples/memorys/src/main.rs @@ -1,9 +1,7 @@ -use std::path::Path; use userdmp::{error::UserDmpError, UserDump}; fn main() -> Result<(), UserDmpError> { - let path = Path::new("C:\\Examples.dmp"); - let dmp = UserDump::new(path)?; + let dmp = UserDump::new("C:\\Examples.dmp")?; for(_, memory) in dmp.memorys() { println!("Start: {}", memory.start_addr()); diff --git a/examples/modules/Cargo.lock b/examples/modules/Cargo.lock index 0b37fb5..28e7ace 100644 --- a/examples/modules/Cargo.lock +++ b/examples/modules/Cargo.lock @@ -131,7 +131,7 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "userdmp" -version = "0.1.0" +version = "0.1.1" dependencies = [ "binrw", "bytemuck", diff --git a/examples/modules/src/main.rs b/examples/modules/src/main.rs index ace252d..2e42878 100644 --- a/examples/modules/src/main.rs +++ b/examples/modules/src/main.rs @@ -1,9 +1,7 @@ -use std::path::Path; use userdmp::{error::UserDmpError, UserDump}; fn main() -> Result<(), UserDmpError> { - let path = Path::new("C:\\Examples.dmp"); - let dmp = UserDump::new(path)?; + let dmp = UserDump::new("C:\\Examples.dmp")?; for (_, module) in dmp.modules().iter() { println!("[*] Path: {:?}", module.path); diff --git a/examples/system/Cargo.lock b/examples/system/Cargo.lock index 1a31655..e966e8b 100644 --- a/examples/system/Cargo.lock +++ b/examples/system/Cargo.lock @@ -131,7 +131,7 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "userdmp" -version = "0.1.0" +version = "0.1.1" dependencies = [ "binrw", "bytemuck", diff --git a/examples/system/src/main.rs b/examples/system/src/main.rs index 4371761..eb6bfe7 100644 --- a/examples/system/src/main.rs +++ b/examples/system/src/main.rs @@ -1,9 +1,7 @@ -use std::path::Path; use userdmp::{error::UserDmpError, UserDump}; fn main() -> Result<(), UserDmpError> { - let path = Path::new("C:\\Examples.dmp"); - let dmp = UserDump::new(path)?; + let dmp = UserDump::new("C:\\Examples.dmp")?; let system = dmp.system; println!("Number Of Processors: {}", system.number_of_processors); diff --git a/examples/threads/Cargo.lock b/examples/threads/Cargo.lock index 9e20c5b..5baa9e8 100644 --- a/examples/threads/Cargo.lock +++ b/examples/threads/Cargo.lock @@ -131,7 +131,7 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "userdmp" -version = "0.1.0" +version = "0.1.1" dependencies = [ "binrw", "bytemuck", diff --git a/examples/threads/src/main.rs b/examples/threads/src/main.rs index 324b812..b8f9931 100644 --- a/examples/threads/src/main.rs +++ b/examples/threads/src/main.rs @@ -1,9 +1,7 @@ -use std::path::Path; use userdmp::{error::UserDmpError, UserDump}; fn main() -> Result<(), UserDmpError> { - let path = Path::new("C:\\Examples.dmp"); - let dmp = UserDump::new(path)?; + let dmp = UserDump::new("C:\\Examples.dmp")?; for (tid, thread) in dmp.threads().iter() { println!("[*] TID: {:?}", tid); diff --git a/src/mapper.rs b/src/mapper.rs index 06b6477..fedb3ae 100644 --- a/src/mapper.rs +++ b/src/mapper.rs @@ -45,7 +45,7 @@ impl<'a> MappingFile<'a> { /// Ok(()) /// } /// ``` - pub fn new(path: &Path) -> Result { + pub fn new(path: impl AsRef) -> Result { let file = File::open(path)?; let (buffer, address) = mapper::map_file(file)?; Ok(Self { buffer, address }) diff --git a/src/parse.rs b/src/parse.rs index a247438..4277fd7 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -98,10 +98,10 @@ impl<'a> UserDump<'a> { /// Err(e) => eprintln!("Failed to parse minidump: {:?}", e), /// } /// ``` - pub fn new(path: &Path) -> Result { + pub fn new(path: impl AsRef) -> Result { // Mapping the file in memory to the target environment (Windows or Linux). let mapped_file = MappingFile::new(path)?; - Self::parser(mapped_file) + Self::parse(mapped_file) } /// Returns a reference to the list of threads in the parsed minidump. @@ -211,7 +211,7 @@ impl<'a> UserDump<'a> { /// /// * `Ok(Self)` - If the file is parsed successfully. /// * `Err(UserDmpError)` - If the file format is invalid or if parsing fails. - fn parser(mapped_file: MappingFile<'a>) -> Result { + fn parse(mapped_file: MappingFile<'a>) -> Result { // Creates a cursor to navigate the mapped file. let mut cursor = mapped_file.cursor();