Description
What is the feature you'd like to have?
The Arm64PeRelocationHandler
is currently a stub that only throws a warning about an unsupported relocation type. Between the use of PE in EFI and the increasing popularity of Windows on ARM, it would be nice for PE relocations to be supported on ARM64.
Is your feature request related to a problem?
While analyzing an arm64 EFI binary, a number of important pointers and jump tables were replaced with null pointers.
Are any alternative solutions acceptable?
The IMAGE_REL_BASED_HIGH
, IMAGE_REL_BASED_LOW
, IMAGE_REL_BASED_HIGHLOW
, IMAGE_REL_BASED_HIGHADJ
, and IMAGE_REL_BASED_DIR64
relocations do not appear to be architecture-dependent. These could potentially be handled locally in the PE View rather than in individual architectures.
Additional Information:
Attached is a zipfile containing an EFI PE from the bootloader of the AP2A.240805.005.S4 build of Pixel 5a firmware that uses IMAGE_REL_BASED_DIR64
relocations. When loaded at the default base address of 0
, a 19-entry jump table at 0x475d0
is currently replaced by all null pointers.
pixel5a_efi_pe.zip
Relevant .reloc
directory entries: