Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pe-format: MIPS Updates #1846

Open
wants to merge 2 commits into
base: docs
Choose a base branch
from
Open

Conversation

FlyGoat
Copy link

@FlyGoat FlyGoat commented May 18, 2024

Hi,

This PR updated pe-format Machine Types for MIPS using known values from https://learn.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants and added clarification text for those values.

We further request Microsoft assistance on two matters:

  1. Allocation of new values: We would like Microsoft to allocate Machine Type following values to cover more existing architectures:
  • IMAGE_FILE_MACHINE_R4000BE: MIPS III compatible 64-bit big endian, our educated guess of allocation to that value is 0x164, this is necessary to cover 64-bit big endian MIPS systems.
  • IMAGE_FILE_MACHINE_MIPS32R6BE, IMAGE_FILE_MACHINE_MIPS32R6LE, IMAGE_FILE_MACHINE_MIPS64R6BE, IMAGE_FILE_MACHINE_MIPS64R6LE: MIPS Release 6 32/64 bit big/little endian. MIPS Release 6 is no longer backwards compatible with previous releases of the architecture, thus it is necessary to mark them with new machine type. No new relocation type is required.
  1. Clarification on header endianness: From online sources and observations made on existing Big Endian PE images, we learned that in Microsoft's implementation, headers in PE image are always stored as little-endian byte order regardless of targeting architecture endianness. We would like Microsoft to confirm this behaviour and document it in pe-format if possible.

This PR has similar nature to #1017, please handle it accordingly.

Thanks

Copy link
Contributor

@FlyGoat : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants