Name Description Size
data_directory.rs 7915
export.rs 11889
file.rs 30232
import.rs 12682
mod.rs Support for reading PE files. Traits are used to abstract over the difference between PE32 and PE32+. The primary trait for this is [`ImageNtHeaders`]. ## High level API [`PeFile`] implements the [`Object`](crate::read::Object) trait for PE files. [`PeFile`] is parameterised by [`ImageNtHeaders`] to allow reading both PE32 and PE32+. There are type aliases for these parameters ([`PeFile32`] and [`PeFile64`]). ## Low level API The [`ImageNtHeaders`] trait can be directly used to parse both [`pe::ImageNtHeaders32`] and [`pe::ImageNtHeaders64`]. ### Example for low level API ```no_run use object::pe; use object::read::pe::ImageNtHeaders; use std::error::Error; use std::fs; /// Reads a file and displays the name of each section. fn main() -> Result<(), Box<dyn Error>> { # #[cfg(feature = "std")] { let data = fs::read("path/to/binary")?; let dos_header = pe::ImageDosHeader::parse(&*data)?; let mut offset = dos_header.nt_headers_offset().into(); let (nt_headers, data_directories) = pe::ImageNtHeaders64::parse(&*data, &mut offset)?; let sections = nt_headers.sections(&*data, offset)?; let symbols = nt_headers.symbols(&*data)?; for section in sections.iter() { println!("{}", String::from_utf8_lossy(section.name(symbols.strings())?)); } # } Ok(()) } ``` 1830
relocation.rs 3223
resource.rs 6296
rich.rs PE rich header handling 3442
section.rs 14423