Struct elfio::RelocationSectionAccessor [−][src]
pub struct RelocationSectionAccessor<'a> { /* fields omitted */ }
Expand description
A section data accessor intended to relocation tables
For example:
use std::fs::File; use std::io; use std::io::{BufReader, Error}; use elfio::Elfio; fn main() -> io::Result<()> { let elf_file = File::open("tests/files/hello_64")?; let mut reader = BufReader::new(elf_file); let mut elf = Elfio::new(); elf.load(&mut reader)?; let section = match elf.get_section_by_name(&".rela.plt") { Some(s) => s, None => return Err(Error::new(io::ErrorKind::Other, "section not found")), }; let relocs = elfio::RelocationSectionAccessor::new(&elf, section); assert_eq!(relocs.get_entries_num(), 2); // 000000600850 000300000007 R_X86_64_JUMP_SLO 0000000000000000 __libc_start_main@GLIBC_2.2.5 + 0 let rel = relocs.get_entry(1).unwrap(); assert_eq!(rel.offset, 0x000000600850); assert_eq!(rel.symbol, 3); assert_eq!(rel.rtype, 7); assert_eq!(rel.addend, Some(0)); Ok(()) }
Implementations
pub fn new(
elfio: &'a Elfio,
section: &'a dyn ElfSectionTrait
) -> RelocationSectionAccessor<'a>
pub fn new(
elfio: &'a Elfio,
section: &'a dyn ElfSectionTrait
) -> RelocationSectionAccessor<'a>
Creates a new instance of the relocation table accessor
Returns number of symbols
Get a relocation entry by its index