pub trait ImageNtHeaders: Debug + Pod {
type ImageOptionalHeader: ImageOptionalHeader;
type ImageThunkData: ImageThunkData;
// Required methods
fn is_type_64(&self) -> bool;
fn is_valid_optional_magic(&self) -> bool;
fn signature(&self) -> u32;
fn file_header(&self) -> &ImageFileHeader;
fn optional_header(&self) -> &Self::ImageOptionalHeader;
// Provided methods
fn parse<'data, R: ReadRef<'data>>(
data: R,
offset: &mut u64,
) -> Result<(&'data Self, DataDirectories<'data>)> { ... }
fn sections<'data, R: ReadRef<'data>>(
&self,
data: R,
offset: u64,
) -> Result<SectionTable<'data>> { ... }
fn symbols<'data, R: ReadRef<'data>>(
&self,
data: R,
) -> Result<SymbolTable<'data, R>> { ... }
}
Expand description
A trait for generic access to ImageNtHeaders32
and ImageNtHeaders64
.
Required Associated Types§
Required Methods§
Sourcefn is_type_64(&self) -> bool
fn is_type_64(&self) -> bool
Return true if this type is a 64-bit header.
This is a property of the type, not a value in the header data.
Sourcefn is_valid_optional_magic(&self) -> bool
fn is_valid_optional_magic(&self) -> bool
Return true if the magic field in the optional header is valid.
Sourcefn file_header(&self) -> &ImageFileHeader
fn file_header(&self) -> &ImageFileHeader
Return the file header.
Sourcefn optional_header(&self) -> &Self::ImageOptionalHeader
fn optional_header(&self) -> &Self::ImageOptionalHeader
Return the optional header.
Provided Methods§
Sourcefn parse<'data, R: ReadRef<'data>>(
data: R,
offset: &mut u64,
) -> Result<(&'data Self, DataDirectories<'data>)>
fn parse<'data, R: ReadRef<'data>>( data: R, offset: &mut u64, ) -> Result<(&'data Self, DataDirectories<'data>)>
Read the NT headers, including the data directories.
data
must be for the entire file.
offset
must be headers offset, which can be obtained from ImageDosHeader::nt_headers_offset
.
It is updated to point after the optional header, which is where the section headers are located.
Also checks that the signature
and magic
fields in the headers are valid.
Sourcefn sections<'data, R: ReadRef<'data>>(
&self,
data: R,
offset: u64,
) -> Result<SectionTable<'data>>
fn sections<'data, R: ReadRef<'data>>( &self, data: R, offset: u64, ) -> Result<SectionTable<'data>>
Read the section table.
data
must be for the entire file.
offset
must be after the optional file header.
Sourcefn symbols<'data, R: ReadRef<'data>>(
&self,
data: R,
) -> Result<SymbolTable<'data, R>>
fn symbols<'data, R: ReadRef<'data>>( &self, data: R, ) -> Result<SymbolTable<'data, R>>
Read the COFF symbol table and string table.
data
must be the entire file data.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.