pyelftools icon indicating copy to clipboard operation
pyelftools copied to clipboard

Malformed ELF causes RuntimeError on recursion

Open mossman opened this issue 11 years ago • 1 comments

Template file from metasploit causes maximum recursion depth to exceed when given to pyelftools.

--- snip [antti]% base64 -i template_x64_linux_dll.bin f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAogEAAAAAAABAAAAAAAAAALAAAAAAAAAAAAAAAEAAOAACAEAAAgABAAEAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA776t3gAAAADvvq3eAAAAAAAQAAAAAAAAAgAAAAcAAAAwAQAAAAAAADABAAAAAAAAMAEAAAAAAABwAAAAAAAAAHAAAAAAAAAAABAAAAAAAAABAAAABgAAAAAAAAAAAAAAMAEAAAAAAAAwAQAAAAAAAHAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAHAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAKABAAAAAAAAoAEAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAogEAAAAAAAAEAAAAAAAAAAAAAAAAAAAABQAAAAAAAACgAQAAAAAAAAYAAAAAAAAAoAEAAAAAAAAKAAAAAAAAAAIAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --- snip

Traceback: --- snip [antti]% readelf.py -d template_x64_linux_dll.bin Traceback (most recent call last): File "/usr/local/bin/readelf.py", line 1136, in main() File "/usr/local/bin/readelf.py", line 1103, in main readelf.display_dynamic_tags() File "/usr/local/bin/readelf.py", line 333, in display_dynamic_tags for section in self.elffile.iter_sections(): File "/usr/local/lib/python2.7/site-packages/elftools/elf/elffile.py", line 92, in iter_sections yield self.get_section(i) File "/usr/local/lib/python2.7/site-packages/elftools/elf/elffile.py", line 72, in get_section return self._make_section(section_header) File "/usr/local/lib/python2.7/site-packages/elftools/elf/elffile.py", line 265, in _make_section return DynamicSection(section_header, name, self.stream, self) File "/usr/local/lib/python2.7/site-packages/elftools/elf/dynamic.py", line 103, in init ... File "/usr/local/lib/python2.7/site-packages/elftools/elf/elffile.py", line 232, in _get_section_header stream_pos=self._section_offset(n)) File "/usr/local/lib/python2.7/site-packages/elftools/elf/elffile.py", line 208, in _section_offset return self['e_shoff'] + n * self['e_shentsize'] File "/usr/local/lib/python2.7/site-packages/elftools/elf/elffile.py", line 176, in getitem return self.header[name] RuntimeError: maximum recursion depth exceeded while calling a Python object

mossman avatar Dec 17 '14 08:12 mossman

@vapier

eliben avatar Dec 17 '14 13:12 eliben