Those were all bugs affecting big-endian architectures:
The length field in resources string was read without endianness correction, leading to the name_string, language_string and type_string in pe.resources[*] not being properly set.
pe.size_of_optional_header was not using the right size for endianness correction.
pe.opthdr_magic was not using the right size for endianness correction.
pe.dll_characteristics was read without endianness correction.
pe.data_directories was not correctly filled at all, due to not using the right size for endianness correction when reading NumberOfRvaAndSizes.
The entrypoint operator was not returning the right value, as the VirtualSize field was read without endianness correction. This operator is deprecated, but the fix is very trivial.
Those were all bugs affecting big-endian architectures:
name_string
,language_string
andtype_string
inpe.resources[*]
not being properly set.pe.size_of_optional_header
was not using the right size for endianness correction.pe.opthdr_magic
was not using the right size for endianness correction.pe.dll_characteristics
was read without endianness correction.pe.data_directories
was not correctly filled at all, due to not using the right size for endianness correction when readingNumberOfRvaAndSizes
.entrypoint
operator was not returning the right value, as the VirtualSize field was read without endianness correction. This operator is deprecated, but the fix is very trivial.