Struct goblin::elf::section_header::section_header64::SectionHeader
source · #[repr(C)]pub struct SectionHeader {
pub sh_name: u32,
pub sh_type: u32,
pub sh_flags: u64,
pub sh_addr: u64,
pub sh_offset: u64,
pub sh_size: u64,
pub sh_link: u32,
pub sh_info: u32,
pub sh_addralign: u64,
pub sh_entsize: u64,
}
Expand description
Section Headers are typically used by humans and static linkers for additional information or how to relocate the object
NOTE section headers are strippable from a binary without any loss of portability/executability; do not rely on them being there!
Fields§
§sh_name: u32
Section name (string tbl index)
sh_type: u32
Section type
sh_flags: u64
Section flags
sh_addr: u64
Section virtual addr at execution
sh_offset: u64
Section file offset
sh_size: u64
Section size in bytes
sh_link: u32
Link to another section
sh_info: u32
Additional section information
sh_addralign: u64
Section alignment
sh_entsize: u64
Entry size if section holds table
Implementations§
source§impl SectionHeader
impl SectionHeader
pub fn from_bytes(bytes: &[u8], shnum: usize) -> Vec<SectionHeader>
pub fn from_fd( fd: &mut File, offset: u64, shnum: usize ) -> Result<Vec<SectionHeader>>
Trait Implementations§
source§impl Clone for SectionHeader
impl Clone for SectionHeader
source§fn clone(&self) -> SectionHeader
fn clone(&self) -> SectionHeader
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for SectionHeader
impl Debug for SectionHeader
source§impl Default for SectionHeader
impl Default for SectionHeader
source§fn default() -> SectionHeader
fn default() -> SectionHeader
Returns the “default value” for a type. Read more
source§impl From<SectionHeader> for ElfSectionHeader
impl From<SectionHeader> for ElfSectionHeader
source§fn from(sh: SectionHeader) -> Self
fn from(sh: SectionHeader) -> Self
Converts to this type from the input type.
source§impl From<SectionHeader> for SectionHeader
impl From<SectionHeader> for SectionHeader
source§fn from(sh: ElfSectionHeader) -> Self
fn from(sh: ElfSectionHeader) -> Self
Converts to this type from the input type.
source§impl PartialEq for SectionHeader
impl PartialEq for SectionHeader
source§fn eq(&self, other: &SectionHeader) -> bool
fn eq(&self, other: &SectionHeader) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Plain for SectionHeader
impl Plain for SectionHeader
fn from_bytes(bytes: &[u8]) -> Result<&Self, Error>where Self: Sized,
fn slice_from_bytes(bytes: &[u8]) -> Result<&[Self], Error>where Self: Sized,
fn slice_from_bytes_len(bytes: &[u8], len: usize) -> Result<&[Self], Error>where Self: Sized,
fn from_mut_bytes(bytes: &mut [u8]) -> Result<&mut Self, Error>where Self: Sized,
fn slice_from_mut_bytes(bytes: &mut [u8]) -> Result<&mut [Self], Error>where Self: Sized,
fn slice_from_mut_bytes_len( bytes: &mut [u8], len: usize ) -> Result<&mut [Self], Error>where Self: Sized,
fn copy_from_bytes(&mut self, bytes: &[u8]) -> Result<(), Error>
source§impl<'a> TryFromCtx<'a, Endian> for SectionHeaderwhere
SectionHeader: 'a,
impl<'a> TryFromCtx<'a, Endian> for SectionHeaderwhere SectionHeader: 'a,
source§impl<'a> TryIntoCtx<Endian> for &'a SectionHeader
impl<'a> TryIntoCtx<Endian> for &'a SectionHeader
source§impl TryIntoCtx<Endian> for SectionHeader
impl TryIntoCtx<Endian> for SectionHeader
impl Copy for SectionHeader
impl Eq for SectionHeader
impl StructuralEq for SectionHeader
impl StructuralPartialEq for SectionHeader
Auto Trait Implementations§
impl RefUnwindSafe for SectionHeader
impl Send for SectionHeader
impl Sync for SectionHeader
impl Unpin for SectionHeader
impl UnwindSafe for SectionHeader
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
Mutably borrows from an owned value. Read more