| 21 | |
| 22 | |
| 23 | class ELFSymbol: |
| 24 | def __init__(self, image, symbol): |
| 25 | self._image = image |
| 26 | self._symbol = symbol |
| 27 | |
| 28 | @property |
| 29 | def string_value(self): |
| 30 | size = self._symbol["st_size"] |
| 31 | value = self.get_value(0, size) |
| 32 | return coff.decode_asciiz(value) # not COFF-specific |
| 33 | |
| 34 | def get_value(self, offset, size): |
| 35 | section = self._symbol["st_shndx"] |
| 36 | data = self._image.get_section(section).data() |
| 37 | base = self._symbol["st_value"] + offset |
| 38 | return data[base : base + size] |
| 39 | |
| 40 | |
| 41 | class ELFImage: |
no outgoing calls
no test coverage detected