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