Parse a directory entry from the resources directory.
(self, rva)
| 4464 | return data_entry |
| 4465 | |
| 4466 | def parse_resource_entry(self, rva): |
| 4467 | """Parse a directory entry from the resources directory.""" |
| 4468 | |
| 4469 | try: |
| 4470 | data = self.get_data( |
| 4471 | rva, Structure(self.__IMAGE_RESOURCE_DIRECTORY_ENTRY_format__).sizeof() |
| 4472 | ) |
| 4473 | except PEFormatError: |
| 4474 | # A warning will be added by the caller if this method returns None |
| 4475 | return None |
| 4476 | |
| 4477 | resource = self.__unpack_data__( |
| 4478 | self.__IMAGE_RESOURCE_DIRECTORY_ENTRY_format__, |
| 4479 | data, |
| 4480 | file_offset=self.get_offset_from_rva(rva), |
| 4481 | ) |
| 4482 | |
| 4483 | if resource is None: |
| 4484 | return None |
| 4485 | |
| 4486 | # resource.NameIsString = (resource.Name & 0x80000000L) >> 31 |
| 4487 | resource.NameOffset = resource.Name & 0x7FFFFFFF |
| 4488 | |
| 4489 | resource.__pad = resource.Name & 0xFFFF0000 |
| 4490 | resource.Id = resource.Name & 0x0000FFFF |
| 4491 | |
| 4492 | resource.DataIsDirectory = (resource.OffsetToData & 0x80000000) >> 31 |
| 4493 | resource.OffsetToDirectory = resource.OffsetToData & 0x7FFFFFFF |
| 4494 | |
| 4495 | return resource |
| 4496 | |
| 4497 | def parse_version_information(self, version_struct): |
| 4498 | """Parse version information structure. |
no test coverage detected