/
pe.go
66 lines (61 loc) · 2.09 KB
/
pe.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package proc
import (
"fmt"
)
const (
_IMAGE_FILE_MACHINE_UNKNOWN = 0x0
_IMAGE_FILE_MACHINE_AM33 = 0x1d3
_IMAGE_FILE_MACHINE_AMD64 = 0x8664
_IMAGE_FILE_MACHINE_ARM = 0x1c0
_IMAGE_FILE_MACHINE_ARMNT = 0x1c4
_IMAGE_FILE_MACHINE_ARM64 = 0xaa64
_IMAGE_FILE_MACHINE_EBC = 0xebc
_IMAGE_FILE_MACHINE_I386 = 0x14c
_IMAGE_FILE_MACHINE_IA64 = 0x200
_IMAGE_FILE_MACHINE_M32R = 0x9041
_IMAGE_FILE_MACHINE_MIPS16 = 0x266
_IMAGE_FILE_MACHINE_MIPSFPU = 0x366
_IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466
_IMAGE_FILE_MACHINE_POWERPC = 0x1f0
_IMAGE_FILE_MACHINE_POWERPCFP = 0x1f1
_IMAGE_FILE_MACHINE_R4000 = 0x166
_IMAGE_FILE_MACHINE_SH3 = 0x1a2
_IMAGE_FILE_MACHINE_SH3DSP = 0x1a3
_IMAGE_FILE_MACHINE_SH4 = 0x1a6
_IMAGE_FILE_MACHINE_SH5 = 0x1a8
_IMAGE_FILE_MACHINE_THUMB = 0x1c2
_IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169
)
type _PEMachine uint16
// PEMachineString map pe machine to name, See $GOROOT/src/debug/pe/pe.go for detail
var _PEMachineString = map[_PEMachine]string{
_IMAGE_FILE_MACHINE_UNKNOWN: "unknown",
_IMAGE_FILE_MACHINE_AM33: "am33",
_IMAGE_FILE_MACHINE_AMD64: "amd64",
_IMAGE_FILE_MACHINE_ARM: "arm",
_IMAGE_FILE_MACHINE_ARMNT: "armnt",
_IMAGE_FILE_MACHINE_ARM64: "arm64",
_IMAGE_FILE_MACHINE_EBC: "ebc",
_IMAGE_FILE_MACHINE_I386: "i386",
_IMAGE_FILE_MACHINE_IA64: "ia64",
_IMAGE_FILE_MACHINE_M32R: "m32r",
_IMAGE_FILE_MACHINE_MIPS16: "mips16",
_IMAGE_FILE_MACHINE_MIPSFPU: "mipsfpu",
_IMAGE_FILE_MACHINE_MIPSFPU16: "mipsfpu16",
_IMAGE_FILE_MACHINE_POWERPC: "powerpc",
_IMAGE_FILE_MACHINE_POWERPCFP: "powerpcfp",
_IMAGE_FILE_MACHINE_R4000: "r4000",
_IMAGE_FILE_MACHINE_SH3: "sh3",
_IMAGE_FILE_MACHINE_SH3DSP: "sh3dsp",
_IMAGE_FILE_MACHINE_SH4: "sh4",
_IMAGE_FILE_MACHINE_SH5: "sh5",
_IMAGE_FILE_MACHINE_THUMB: "thumb",
_IMAGE_FILE_MACHINE_WCEMIPSV2: "wcemipsv2",
}
func (m _PEMachine) String() string {
str, ok := _PEMachineString[m]
if ok {
return str
}
return fmt.Sprintf("unknown image file machine code %d\n", uint16(m))
}