Struct elflib::SectionHeaderRef
source · pub struct SectionHeaderRef<'a> { /* private fields */ }
Implementations§
source§impl<'a> SectionHeaderRef<'a>
impl<'a> SectionHeaderRef<'a>
pub fn raw(&self) -> &SectionHeader
source§impl<'a> SectionHeaderRef<'a>
impl<'a> SectionHeaderRef<'a>
pub fn content(&self) -> Result<&'a [u8]>
pub fn name(&self) -> Result<&'a str>
sourcepub fn data(&self) -> Result<SectionData<'a>>
pub fn data(&self) -> Result<SectionData<'a>>
Examples found in repository?
examples/basic.rs (line 13)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
fn main() -> elflib::Result<()> {
// let mut content = std::fs::read("/lib/modules/6.2.0-34-generic/kernel/net/nfc/nfc.ko").unwrap();
// let mut content = std::fs::read("/usr/bin/ls").unwrap();
let mut content =
std::fs::read("./test_binaries/build/mips64-linux-gnuabi64-gcc-main").unwrap();
let parser = ElfParser::new(&mut content)?;
let sections = parser.section_headers()?;
for section_res in sections {
let section = section_res?;
match section.data()? {
elflib::SectionData::RelocationSection(rel_section) => {
for rel_entry_res in rel_section.entries {
let rel_entry = rel_entry_res?;
println!("{:?}", rel_entry);
}
}
elflib::SectionData::SymbolTable(symbol_entries) => {
for symbol_res in symbol_entries {
let symbol = symbol_res?;
println!("{:?}", symbol.name());
}
}
_ => {}
}
}
Ok(())
}
Methods from Deref<Target = SectionHeader>§
pub fn address(&self) -> u64
pub fn address_alignemnt(&self) -> u64
pub fn entry_size(&self) -> u64
pub fn flags(&self) -> SectionHeaderFlags
pub fn info(&self) -> u32
pub fn link(&self) -> u32
pub fn name_offset(&self) -> u32
pub fn offset(&self) -> u64
pub fn size(&self) -> u64
pub fn ty(&self) -> &SectionHeaderType
Trait Implementations§
source§impl<'a> Clone for SectionHeaderRef<'a>
impl<'a> Clone for SectionHeaderRef<'a>
source§fn clone(&self) -> SectionHeaderRef<'a>
fn clone(&self) -> SectionHeaderRef<'a>
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<'a> Debug for SectionHeaderRef<'a>
impl<'a> Debug for SectionHeaderRef<'a>
source§impl<'a> Deref for SectionHeaderRef<'a>
impl<'a> Deref for SectionHeaderRef<'a>
source§impl<'a> VariantStructBinarySerde<'a> for SectionHeaderRef<'a>
impl<'a> VariantStructBinarySerde<'a> for SectionHeaderRef<'a>
type Context = ()
fn deserialize( deserializer: &mut BinaryDeserializerFromBufSafe<'a>, parser: &ElfParser<'a>, context: () ) -> Result<Self, BinarySerdeBufSafeError>
fn record_len(file_info: &ElfFileInfo) -> usize
fn serialize(&self, buf: &mut [u8], endianness: Endianness)
Auto Trait Implementations§
impl<'a> Freeze for SectionHeaderRef<'a>
impl<'a> RefUnwindSafe for SectionHeaderRef<'a>
impl<'a> Send for SectionHeaderRef<'a>
impl<'a> Sync for SectionHeaderRef<'a>
impl<'a> Unpin for SectionHeaderRef<'a>
impl<'a> UnwindSafe for SectionHeaderRef<'a>
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