PEArch
Introduction
A small tool that tells you which CPU architecture a given Windows PE is made for.
A total of 35 architectures are supported by this tool.
Usage
This tool can either be used in a command prompt with the options below.
Or, you can simply drop a file onto the .exe or a shortcut to get the same result.
PEArch.exe [/?] [/E|/AsError] [/H|/AsHex] [/F|/FullText] <File>
Options:
/? Prints this help text, and some additional details.
/E, /AsError Gives out the result as an error code.
/H, /AsHex Prints the architecture as a hex number.
/F, /FullText Prints a longer description of the architecture.
Click here to show/hide the architecture and return codes
| STDOUT | STDOUT with /AsHex | STDERR with /AsError | Description (Source: MSDN) |
|---|---|---|---|
| UNKNOWN | 0x0 | 0 | The content of this field is assumed to be applicable to any machine type |
| ALPHA | 0x184 | 388 | Alpha AXP, 32-bit address space |
| ALPHA64 | 0x284 | 644 | Alpha 64, 64-bit address space |
| AM33 | 0x1d3 | 467 | Matsushita AM33 |
| AMD64 | 0x8664 | 34404 | x64 |
| ARM | 0x1c0 | 448 | ARM little endian |
| ARM64 | 0xaa64 | 43620 | ARM64 little endian |
| ARM64EC | 0xA641 | 42561 | ABI that enables interoperability between native ARM64 and emulated x64 code. |
| ARM64X | 0xA64E | 42574 | Binary format that allows both native ARM64 and ARM64EC code to coexist in the same file. |
| ARMNT | 0x1c4 | 452 | ARM Thumb-2 little endian |
| AXP64 | 0x284 | 644 | AXP 64 (Same as Alpha 64) |
| EBC | 0xebc | 3772 | EFI byte code |
| I386 | 0x14c | 332 | Intel 386 or later processors and compatible processors |
| IA64 | 0x200 | 512 | Intel Itanium processor family |
| LOONGARCH32 | 0x6232 | 25138 | LoongArch 32-bit processor family |
| LOONGARCH64 | 0x6264 | 25188 | LoongArch 64-bit processor family |
| M32R | 0x9041 | 36929 | Mitsubishi M32R little endian |
| MIPS16 | 0x266 | 614 | MIPS16 |
| MIPSFPU | 0x366 | 870 | MIPS with FPU |
| MIPSFPU16 | 0x466 | 1126 | MIPS16 with FPU |
| POWERPC | 0x1f0 | 496 | Power PC little endian |
| POWERPCFP | 0x1f1 | 497 | Power PC with floating point support |
| R3000BE | 0x160 | 352 | MIPS I compatible 32-bit big endian |
| R3000 | 0x162 | 354 | MIPS I compatible 32-bit little endian |
| R4000 | 0x166 | 358 | MIPS III compatible 64-bit little endian |
| R10000 | 0x168 | 360 | MIPS IV compatible 64-bit little endian |
| RISCV32 | 0x5032 | 20530 | RISC-V 32-bit address space |
| RISCV64 | 0x5064 | 20580 | RISC-V 64-bit address space |
| RISCV128 | 0x5128 | 20776 | RISC-V 128-bit address space |
| SH3 | 0x1a2 | 418 | Hitachi SH3 |
| SH3DSP | 0x1a3 | 419 | Hitachi SH3 DSP |
| SH4 | 0x1a6 | 422 | Hitachi SH4 |
| SH5 | 0x1a8 | 424 | Hitachi SH5 |
| THUMB | 0x1c2 | 450 | Thumb |
| WCEMIPSV2 | 0x169 | 361 | MIPS little-endian WCE v2v2 |
Output examples
Without options:
Command: pearch "C:\Windows\explorer.exe"
> STDOUT: AMD64
> STDERR:
> ERRORLEVEL: 0
Command: pearch "C:\Windows\non-existant-file.exe"
> STDOUT:
> STDERR: Cannot open file !
> ERRORLEVEL: 12
With /AsHex and /AsError:
Command: pearch /AsHex "C:\Windows\explorer.exe"
> STDOUT: 8664
> STDERR:
> ERRORLEVEL: 0
Command: pearch /AsError "C:\Windows\explorer.exe"
> STDOUT:
> STDERR:
> ERRORLEVEL: 34404
Command: pearch /AsError /AsHex "C:\Windows\explorer.exe"
> STDOUT: 8664
> STDERR:
> ERRORLEVEL: 34404
Command: pearch /AsError /AsHex "C:\Windows\non-existant-file.exe"
> STDOUT:
> STDERR: Cannot open file !
> ERRORLEVEL: 0
Downloads
License
This software and its source code is released in the Public Domain (CC0 1.0 Universal).