-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
I was wondering if you'd be interested by this error, caused by this file.
I found it using CAPA, with dnfile 0.14.1, but it also triggers on 0.15.0.
>>> import dnfile
>>> pe = dnfile.dnPE("e94f7c475e7db0691a2698b5dd349c2b412ffddafa7a3ff85785cbd5ac144fcb")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File ".../dnfile/__init__.py", line 64, in __init__
super().__init__(name, data, fast_load)
File ".../pefile.py", line 2895, in __init__
self.__parse__(name, data, fast_load)
File ".../dnfile/__init__.py", line 132, in __parse__
super().__parse__(fname, data, fast_load)
File ".../pefile.py", line 3328, in __parse__
self.full_load()
File ".../pefile.py", line 3439, in full_load
self.parse_data_directories()
File ".../dnfile/__init__.py", line 178, in parse_data_directories
value = entry[1](dir_entry.VirtualAddress, dir_entry.Size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../dnfile/__init__.py", line 221, in parse_clr_structure
return ClrData(self, rva, size, self.clr_lazy_load)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../dnfile/__init__.py", line 526, in __init__
self._init_resources(pe)
File ".../dnfile/__init__.py", line 574, in _init_resources
rsrc.parse()
File ".../dnfile/resource.py", line 289, in parse
rs.parse()
File ".../dnfile/resource.py", line 433, in parse
rsrc_factory.read_rsrc_data_v1(self._data, e_data_offset, self.resource_types, e)
File ".../dnfile/resource.py", line 113, in read_rsrc_data_v1
d, v = self.type_str_to_type(entry.type_name, data, offset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../dnfile/resource.py", line 166, in type_str_to_type
final_bytes, n = self.read_serialized_data(data, offset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../dnfile/resource.py", line 72, in read_serialized_data
x = utils.read_compressed_int(data[offset:offset + 4])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File ".../dnfile/utils.py", line 46, in read_compressed_int
value |= data[1]
~~~~^^^
IndexError: index out of range
The file doesn't look to be too badly corrupted, but I may be wrong. 🙂
Metadata
Metadata
Assignees
Labels
No labels