From b1b2eda8b34c35c040b64027aa34b8ef73b543a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Mei=C3=9Fner?= Date: Fri, 18 Oct 2024 20:56:19 +0100 Subject: [PATCH] Adds Elf64Phdr::file_range(). --- src/elf_parser/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/elf_parser/mod.rs b/src/elf_parser/mod.rs index 23fc272a..e6795c9a 100644 --- a/src/elf_parser/mod.rs +++ b/src/elf_parser/mod.rs @@ -63,6 +63,14 @@ pub enum ElfParserError { } impl Elf64Phdr { + /// Returns the byte range the section spans in the file. + pub fn file_range(&self) -> Option> { + (self.p_type == PT_LOAD).then(|| { + let offset = self.p_offset as usize; + offset..offset.saturating_add(self.p_filesz as usize) + }) + } + /// Returns the segment virtual address range. pub fn vm_range(&self) -> Range { let addr = self.p_vaddr;