Struct object::pe::ImageSectionHeader
source · #[repr(C)]pub struct ImageSectionHeader {
pub name: [u8; 8],
pub virtual_size: U32<LittleEndian>,
pub virtual_address: U32<LittleEndian>,
pub size_of_raw_data: U32<LittleEndian>,
pub pointer_to_raw_data: U32<LittleEndian>,
pub pointer_to_relocations: U32<LittleEndian>,
pub pointer_to_linenumbers: U32<LittleEndian>,
pub number_of_relocations: U16<LittleEndian>,
pub number_of_linenumbers: U16<LittleEndian>,
pub characteristics: U32<LittleEndian>,
}
Fields§
§name: [u8; 8]
§virtual_size: U32<LittleEndian>
§virtual_address: U32<LittleEndian>
§size_of_raw_data: U32<LittleEndian>
§pointer_to_raw_data: U32<LittleEndian>
§pointer_to_relocations: U32<LittleEndian>
§pointer_to_linenumbers: U32<LittleEndian>
§number_of_relocations: U16<LittleEndian>
§number_of_linenumbers: U16<LittleEndian>
§characteristics: U32<LittleEndian>
Implementations§
source§impl ImageSectionHeader
impl ImageSectionHeader
pub(crate) fn kind(&self) -> SectionKind
source§impl ImageSectionHeader
impl ImageSectionHeader
sourcepub fn name_offset(&self) -> Result<Option<u32>>
pub fn name_offset(&self) -> Result<Option<u32>>
Return the string table offset of the section name.
Returns Ok(None)
if the name doesn’t use the string table
and can be obtained with raw_name
instead.
sourcepub fn name<'data, R: ReadRef<'data>>(
&'data self,
strings: StringTable<'data, R>,
) -> Result<&'data [u8]>
pub fn name<'data, R: ReadRef<'data>>( &'data self, strings: StringTable<'data, R>, ) -> Result<&'data [u8]>
Return the section name.
This handles decoding names that are offsets into the symbol string table.
sourcepub fn coff_file_range(&self) -> Option<(u32, u32)>
pub fn coff_file_range(&self) -> Option<(u32, u32)>
Return the offset and size of the section in a COFF file.
Returns None
for sections that have no data in the file.
sourcepub fn coff_data<'data, R: ReadRef<'data>>(
&self,
data: R,
) -> Result<&'data [u8], ()>
pub fn coff_data<'data, R: ReadRef<'data>>( &self, data: R, ) -> Result<&'data [u8], ()>
Return the section data in a COFF file.
Returns Ok(&[])
if the section has no data.
Returns Err
for invalid values.
sourcepub fn coff_alignment(&self) -> u64
pub fn coff_alignment(&self) -> u64
Return the section alignment in bytes.
This is only valid for sections in a COFF file.
sourcepub fn coff_relocations<'data, R: ReadRef<'data>>(
&self,
data: R,
) -> Result<&'data [ImageRelocation]>
pub fn coff_relocations<'data, R: ReadRef<'data>>( &self, data: R, ) -> Result<&'data [ImageRelocation]>
Read the relocations in a COFF file.
data
must be the entire file data.
source§impl ImageSectionHeader
impl ImageSectionHeader
sourcepub fn pe_file_range(&self) -> (u32, u32)
pub fn pe_file_range(&self) -> (u32, u32)
Return the offset and size of the section in a PE file.
The size of the range will be the minimum of the file size and virtual size.
sourcepub fn pe_file_range_at(&self, va: u32) -> Option<(u32, u32)>
pub fn pe_file_range_at(&self, va: u32) -> Option<(u32, u32)>
Return the file offset of the given virtual address, and the remaining size up to the end of the section.
Returns None
if the section does not contain the address.
sourcepub fn pe_address_range(&self) -> (u32, u32)
pub fn pe_address_range(&self) -> (u32, u32)
Return the virtual address and size of the section.
sourcepub fn pe_data<'data, R: ReadRef<'data>>(&self, data: R) -> Result<&'data [u8]>
pub fn pe_data<'data, R: ReadRef<'data>>(&self, data: R) -> Result<&'data [u8]>
Return the section data in a PE file.
The length of the data will be the minimum of the file size and virtual size.
sourcepub fn pe_data_at<'data, R: ReadRef<'data>>(
&self,
data: R,
va: u32,
) -> Option<&'data [u8]>
pub fn pe_data_at<'data, R: ReadRef<'data>>( &self, data: R, va: u32, ) -> Option<&'data [u8]>
Return the data starting at the given virtual address, up to the end of the section.
Ignores sections with invalid data.
Returns None
if the section does not contain the address.
sourcepub fn contains_rva(&self, va: u32) -> bool
pub fn contains_rva(&self, va: u32) -> bool
Tests whether a given RVA is part of this section
Trait Implementations§
source§impl Clone for ImageSectionHeader
impl Clone for ImageSectionHeader
source§fn clone(&self) -> ImageSectionHeader
fn clone(&self) -> ImageSectionHeader
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ImageSectionHeader
impl Debug for ImageSectionHeader
source§impl Default for ImageSectionHeader
impl Default for ImageSectionHeader
source§fn default() -> ImageSectionHeader
fn default() -> ImageSectionHeader
impl Copy for ImageSectionHeader
impl Pod for ImageSectionHeader
Auto Trait Implementations§
impl Freeze for ImageSectionHeader
impl RefUnwindSafe for ImageSectionHeader
impl Send for ImageSectionHeader
impl Sync for ImageSectionHeader
impl Unpin for ImageSectionHeader
impl UnwindSafe for ImageSectionHeader
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)