Shdr: add a constructor for vivisect's shdr representation

This commit is contained in:
Yacine Elhamer
2023-04-22 01:33:00 +01:00
parent 97c8fd0525
commit e7ccea44e7

View File

@@ -90,6 +90,24 @@ class Shdr:
link: int
entsize: int
buf: bytes
@classmethod
def from_viv(cls, section, buf: bytes):
"""
construct a Shdr object from vivisect's representation of
section headers (Elf.Elf32Section or Elf.Elf64Section)
"""
return cls(
int(section.vsGetField('sh_name')),
int(section.vsGetField('sh_type')),
int(section.vsGetField('sh_flags')),
int(section.vsGetField('sh_addr')),
int(section.vsGetField('sh_offset')),
int(section.vsGetField('sh_size')),
int(section.vsGetField('sh_link')),
int(section.vsGetField('sh_entsize')),
buf,
)
class ELF: