pub struct PeFile<'data, Pe, R = &'data [u8]> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, { /* private fields */ }
Expand description
A PE object file.
Implementations
sourceimpl<'data, Pe, R> PeFile<'data, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>,
impl<'data, Pe, R> PeFile<'data, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>,
sourcepub fn dos_header(&self) -> &'data ImageDosHeader
pub fn dos_header(&self) -> &'data ImageDosHeader
Return the DOS header of this file.
sourcepub fn nt_headers(&self) -> &'data Pe
pub fn nt_headers(&self) -> &'data Pe
Return the NT Headers of this file.
sourcepub fn rich_header_info(&self) -> Option<RichHeaderInfo<'_>>
pub fn rich_header_info(&self) -> Option<RichHeaderInfo<'_>>
Returns information about the rich header of this file (if any).
sourcepub fn section_table(&self) -> SectionTable<'data>
pub fn section_table(&self) -> SectionTable<'data>
Returns the section table of this binary.
sourcepub fn data_directories(&self) -> DataDirectories<'data>
pub fn data_directories(&self) -> DataDirectories<'data>
Returns the data directories of this file.
sourcepub fn data_directory(&self, id: usize) -> Option<&'data ImageDataDirectory>
pub fn data_directory(&self, id: usize) -> Option<&'data ImageDataDirectory>
Returns the data directory at the given index.
sourcepub fn export_table(&self) -> Result<Option<ExportTable<'data>>>
pub fn export_table(&self) -> Result<Option<ExportTable<'data>>>
Returns the export table of this file.
The export table is located using the data directory.
sourcepub fn import_table(&self) -> Result<Option<ImportTable<'data>>>
pub fn import_table(&self) -> Result<Option<ImportTable<'data>>>
Returns the import table of this file.
The import table is located using the data directory.
Trait Implementations
sourceimpl<'data, Pe: Debug, R: Debug> Debug for PeFile<'data, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>,
impl<'data, Pe: Debug, R: Debug> Debug for PeFile<'data, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>,
sourceimpl<'data, 'file, Pe, R> Object<'data, 'file> for PeFile<'data, Pe, R> where
'data: 'file,
Pe: ImageNtHeaders,
R: 'file + ReadRef<'data>,
impl<'data, 'file, Pe, R> Object<'data, 'file> for PeFile<'data, Pe, R> where
'data: 'file,
Pe: ImageNtHeaders,
R: 'file + ReadRef<'data>,
type SegmentIterator = PeSegmentIterator<'data, 'file, Pe, R>
type SegmentIterator = PeSegmentIterator<'data, 'file, Pe, R>
An iterator over the segments in the object file.
type SectionIterator = PeSectionIterator<'data, 'file, Pe, R>
type SectionIterator = PeSectionIterator<'data, 'file, Pe, R>
An iterator over the sections in the object file.
type ComdatIterator = PeComdatIterator<'data, 'file, Pe, R>
type ComdatIterator = PeComdatIterator<'data, 'file, Pe, R>
An iterator over the COMDAT section groups in the object file.
type Symbol = CoffSymbol<'data, 'file, R>
type Symbol = CoffSymbol<'data, 'file, R>
A symbol in the object file.
type SymbolIterator = CoffSymbolIterator<'data, 'file, R>
type SymbolIterator = CoffSymbolIterator<'data, 'file, R>
An iterator over symbols in the object file.
type SymbolTable = CoffSymbolTable<'data, 'file, R>
type SymbolTable = CoffSymbolTable<'data, 'file, R>
A symbol table in the object file.
type DynamicRelocationIterator = NoDynamicRelocationIterator
type DynamicRelocationIterator = NoDynamicRelocationIterator
An iterator over dynamic relocations in the file. Read more
sourcefn architecture(&self) -> Architecture
fn architecture(&self) -> Architecture
Get the architecture type of the file.
sourcefn is_little_endian(&self) -> bool
fn is_little_endian(&self) -> bool
Return true if the file is little endian, false if it is big endian.
sourcefn kind(&self) -> ObjectKind
fn kind(&self) -> ObjectKind
Return the kind of this object.
sourcefn segments(&'file self) -> PeSegmentIterator<'data, 'file, Pe, R>ⓘNotable traits for PeSegmentIterator<'data, 'file, Pe, R>impl<'data, 'file, Pe, R> Iterator for PeSegmentIterator<'data, 'file, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeSegment<'data, 'file, Pe, R>;
fn segments(&'file self) -> PeSegmentIterator<'data, 'file, Pe, R>ⓘNotable traits for PeSegmentIterator<'data, 'file, Pe, R>impl<'data, 'file, Pe, R> Iterator for PeSegmentIterator<'data, 'file, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeSegment<'data, 'file, Pe, R>;
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeSegment<'data, 'file, Pe, R>;
Get an iterator over the segments in the file.
sourcefn section_by_name_bytes(
&'file self,
section_name: &[u8]
) -> Option<PeSection<'data, 'file, Pe, R>>
fn section_by_name_bytes(
&'file self,
section_name: &[u8]
) -> Option<PeSection<'data, 'file, Pe, R>>
Like Self::section_by_name
, but allows names that are not UTF-8.
sourcefn section_by_index(
&'file self,
index: SectionIndex
) -> Result<PeSection<'data, 'file, Pe, R>>
fn section_by_index(
&'file self,
index: SectionIndex
) -> Result<PeSection<'data, 'file, Pe, R>>
Get the section at the given index. Read more
sourcefn sections(&'file self) -> PeSectionIterator<'data, 'file, Pe, R>ⓘNotable traits for PeSectionIterator<'data, 'file, Pe, R>impl<'data, 'file, Pe, R> Iterator for PeSectionIterator<'data, 'file, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeSection<'data, 'file, Pe, R>;
fn sections(&'file self) -> PeSectionIterator<'data, 'file, Pe, R>ⓘNotable traits for PeSectionIterator<'data, 'file, Pe, R>impl<'data, 'file, Pe, R> Iterator for PeSectionIterator<'data, 'file, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeSection<'data, 'file, Pe, R>;
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeSection<'data, 'file, Pe, R>;
Get an iterator over the sections in the file.
sourcefn comdats(&'file self) -> PeComdatIterator<'data, 'file, Pe, R>ⓘNotable traits for PeComdatIterator<'data, 'file, Pe, R>impl<'data, 'file, Pe, R> Iterator for PeComdatIterator<'data, 'file, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeComdat<'data, 'file, Pe, R>;
fn comdats(&'file self) -> PeComdatIterator<'data, 'file, Pe, R>ⓘNotable traits for PeComdatIterator<'data, 'file, Pe, R>impl<'data, 'file, Pe, R> Iterator for PeComdatIterator<'data, 'file, Pe, R> where
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeComdat<'data, 'file, Pe, R>;
Pe: ImageNtHeaders,
R: ReadRef<'data>, type Item = PeComdat<'data, 'file, Pe, R>;
Get an iterator over the COMDAT section groups in the file.
sourcefn symbol_by_index(
&'file self,
index: SymbolIndex
) -> Result<CoffSymbol<'data, 'file, R>>
fn symbol_by_index(
&'file self,
index: SymbolIndex
) -> Result<CoffSymbol<'data, 'file, R>>
Get the debugging symbol at the given index. Read more
sourcefn symbols(&'file self) -> CoffSymbolIterator<'data, 'file, R>ⓘNotable traits for CoffSymbolIterator<'data, 'file, R>impl<'data, 'file, R: ReadRef<'data>> Iterator for CoffSymbolIterator<'data, 'file, R> type Item = CoffSymbol<'data, 'file, R>;
fn symbols(&'file self) -> CoffSymbolIterator<'data, 'file, R>ⓘNotable traits for CoffSymbolIterator<'data, 'file, R>impl<'data, 'file, R: ReadRef<'data>> Iterator for CoffSymbolIterator<'data, 'file, R> type Item = CoffSymbol<'data, 'file, R>;
Get an iterator over the debugging symbols in the file. Read more
sourcefn symbol_table(&'file self) -> Option<CoffSymbolTable<'data, 'file, R>>
fn symbol_table(&'file self) -> Option<CoffSymbolTable<'data, 'file, R>>
Get the symbol table, if any.
sourcefn dynamic_symbols(&'file self) -> CoffSymbolIterator<'data, 'file, R>ⓘNotable traits for CoffSymbolIterator<'data, 'file, R>impl<'data, 'file, R: ReadRef<'data>> Iterator for CoffSymbolIterator<'data, 'file, R> type Item = CoffSymbol<'data, 'file, R>;
fn dynamic_symbols(&'file self) -> CoffSymbolIterator<'data, 'file, R>ⓘNotable traits for CoffSymbolIterator<'data, 'file, R>impl<'data, 'file, R: ReadRef<'data>> Iterator for CoffSymbolIterator<'data, 'file, R> type Item = CoffSymbol<'data, 'file, R>;
Get an iterator over the dynamic linking symbols in the file. Read more
sourcefn dynamic_symbol_table(&'file self) -> Option<CoffSymbolTable<'data, 'file, R>>
fn dynamic_symbol_table(&'file self) -> Option<CoffSymbolTable<'data, 'file, R>>
Get the dynamic linking symbol table, if any. Read more
sourcefn dynamic_relocations(&'file self) -> Option<NoDynamicRelocationIterator>
fn dynamic_relocations(&'file self) -> Option<NoDynamicRelocationIterator>
Get the dynamic relocations for this file. Read more
sourcefn exports(&self) -> Result<Vec<Export<'data>>>
fn exports(&self) -> Result<Vec<Export<'data>>>
Get the exported symbols that expose both a name and an address. Read more
sourcefn pdb_info(&self) -> Result<Option<CodeView<'_>>>
fn pdb_info(&self) -> Result<Option<CodeView<'_>>>
The filename and GUID from the PE CodeView section
sourcefn has_debug_symbols(&self) -> bool
fn has_debug_symbols(&self) -> bool
Return true if the file contains debug information sections, false if not.
sourcefn relative_address_base(&self) -> u64
fn relative_address_base(&self) -> u64
Get the base address used for relative virtual addresses. Read more
sourcefn endianness(&self) -> Endianness
fn endianness(&self) -> Endianness
Get the endianness of the file.
sourcefn section_by_name(&'file self, section_name: &str) -> Option<Self::Section>
fn section_by_name(&'file self, section_name: &str) -> Option<Self::Section>
Get the section named section_name
, if such a section exists. Read more
sourcefn symbol_map(&'file self) -> SymbolMap<SymbolMapName<'data>>
fn symbol_map(&'file self) -> SymbolMap<SymbolMapName<'data>>
Construct a map from addresses to symbol names. Read more
sourcefn object_map(&'file self) -> ObjectMap<'data>
fn object_map(&'file self) -> ObjectMap<'data>
Construct a map from addresses to symbol names and object file names. Read more
sourcefn build_id(&self) -> Result<Option<&'data [u8]>>
fn build_id(&self) -> Result<Option<&'data [u8]>>
The build ID from an ELF NT_GNU_BUILD_ID
note.
Auto Trait Implementations
impl<'data, Pe, R> RefUnwindSafe for PeFile<'data, Pe, R> where
Pe: RefUnwindSafe,
R: RefUnwindSafe,
impl<'data, Pe, R> Send for PeFile<'data, Pe, R> where
Pe: Sync,
R: Send,
impl<'data, Pe, R> Sync for PeFile<'data, Pe, R> where
Pe: Sync,
R: Sync,
impl<'data, Pe, R> Unpin for PeFile<'data, Pe, R> where
R: Unpin,
impl<'data, Pe, R> UnwindSafe for PeFile<'data, Pe, R> where
Pe: RefUnwindSafe,
R: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more