codekingpro/portable-devtools
114k
1// Copyright 2009 The Go Authors. All rights reserved.2// Use of this source code is governed by a BSD-style3// license that can be found in the LICENSE file.4 5package pe6 7type FileHeader struct {8 Machine uint169 NumberOfSections uint1610 TimeDateStamp uint3211 PointerToSymbolTable uint3212 NumberOfSymbols uint3213 SizeOfOptionalHeader uint1614 Characteristics uint1615}16 17type DataDirectory struct {18 VirtualAddress uint3219 Size uint3220}21 22type OptionalHeader32 struct {23 Magic uint1624 MajorLinkerVersion uint825 MinorLinkerVersion uint826 SizeOfCode uint3227 SizeOfInitializedData uint3228 SizeOfUninitializedData uint3229 AddressOfEntryPoint uint3230 BaseOfCode uint3231 BaseOfData uint3232 ImageBase uint3233 SectionAlignment uint3234 FileAlignment uint3235 MajorOperatingSystemVersion uint1636 MinorOperatingSystemVersion uint1637 MajorImageVersion uint1638 MinorImageVersion uint1639 MajorSubsystemVersion uint1640 MinorSubsystemVersion uint1641 Win32VersionValue uint3242 SizeOfImage uint3243 SizeOfHeaders uint3244 CheckSum uint3245 Subsystem uint1646 DllCharacteristics uint1647 SizeOfStackReserve uint3248 SizeOfStackCommit uint3249 SizeOfHeapReserve uint3250 SizeOfHeapCommit uint3251 LoaderFlags uint3252 NumberOfRvaAndSizes uint3253 DataDirectory [16]DataDirectory54}55 56type OptionalHeader64 struct {57 Magic uint1658 MajorLinkerVersion uint859 MinorLinkerVersion uint860 SizeOfCode uint3261 SizeOfInitializedData uint3262 SizeOfUninitializedData uint3263 AddressOfEntryPoint uint3264 BaseOfCode uint3265 ImageBase uint6466 SectionAlignment uint3267 FileAlignment uint3268 MajorOperatingSystemVersion uint1669 MinorOperatingSystemVersion uint1670 MajorImageVersion uint1671 MinorImageVersion uint1672 MajorSubsystemVersion uint1673 MinorSubsystemVersion uint1674 Win32VersionValue uint3275 SizeOfImage uint3276 SizeOfHeaders uint3277 CheckSum uint3278 Subsystem uint1679 DllCharacteristics uint1680 SizeOfStackReserve uint6481 SizeOfStackCommit uint6482 SizeOfHeapReserve uint6483 SizeOfHeapCommit uint6484 LoaderFlags uint3285 NumberOfRvaAndSizes uint3286 DataDirectory [16]DataDirectory87}88 89const (90 IMAGE_FILE_MACHINE_UNKNOWN = 0x091 IMAGE_FILE_MACHINE_AM33 = 0x1d392 IMAGE_FILE_MACHINE_AMD64 = 0x866493 IMAGE_FILE_MACHINE_ARM = 0x1c094 IMAGE_FILE_MACHINE_ARMNT = 0x1c495 IMAGE_FILE_MACHINE_ARM64 = 0xaa6496 IMAGE_FILE_MACHINE_EBC = 0xebc97 IMAGE_FILE_MACHINE_I386 = 0x14c98 IMAGE_FILE_MACHINE_IA64 = 0x20099 IMAGE_FILE_MACHINE_LOONGARCH32 = 0x6232100 IMAGE_FILE_MACHINE_LOONGARCH64 = 0x6264101 IMAGE_FILE_MACHINE_M32R = 0x9041102 IMAGE_FILE_MACHINE_MIPS16 = 0x266103 IMAGE_FILE_MACHINE_MIPSFPU = 0x366104 IMAGE_FILE_MACHINE_MIPSFPU16 = 0x466105 IMAGE_FILE_MACHINE_POWERPC = 0x1f0106 IMAGE_FILE_MACHINE_POWERPCFP = 0x1f1107 IMAGE_FILE_MACHINE_R4000 = 0x166108 IMAGE_FILE_MACHINE_SH3 = 0x1a2109 IMAGE_FILE_MACHINE_SH3DSP = 0x1a3110 IMAGE_FILE_MACHINE_SH4 = 0x1a6111 IMAGE_FILE_MACHINE_SH5 = 0x1a8112 IMAGE_FILE_MACHINE_THUMB = 0x1c2113 IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x169114 IMAGE_FILE_MACHINE_RISCV32 = 0x5032115 IMAGE_FILE_MACHINE_RISCV64 = 0x5064116 IMAGE_FILE_MACHINE_RISCV128 = 0x5128117)118 119// IMAGE_DIRECTORY_ENTRY constants120const (121 IMAGE_DIRECTORY_ENTRY_EXPORT = 0122 IMAGE_DIRECTORY_ENTRY_IMPORT = 1123 IMAGE_DIRECTORY_ENTRY_RESOURCE = 2124 IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3125 IMAGE_DIRECTORY_ENTRY_SECURITY = 4126 IMAGE_DIRECTORY_ENTRY_BASERELOC = 5127 IMAGE_DIRECTORY_ENTRY_DEBUG = 6128 IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7129 IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8130 IMAGE_DIRECTORY_ENTRY_TLS = 9131 IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10132 IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11133 IMAGE_DIRECTORY_ENTRY_IAT = 12134 IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13135 IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14136)137 138// Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.139const (140 IMAGE_FILE_RELOCS_STRIPPED = 0x0001141 IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002142 IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004143 IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008144 IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010145 IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020146 IMAGE_FILE_BYTES_REVERSED_LO = 0x0080147 IMAGE_FILE_32BIT_MACHINE = 0x0100148 IMAGE_FILE_DEBUG_STRIPPED = 0x0200149 IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400150 IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800151 IMAGE_FILE_SYSTEM = 0x1000152 IMAGE_FILE_DLL = 0x2000153 IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000154 IMAGE_FILE_BYTES_REVERSED_HI = 0x8000155)156 157// OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.158const (159 IMAGE_SUBSYSTEM_UNKNOWN = 0160 IMAGE_SUBSYSTEM_NATIVE = 1161 IMAGE_SUBSYSTEM_WINDOWS_GUI = 2162 IMAGE_SUBSYSTEM_WINDOWS_CUI = 3163 IMAGE_SUBSYSTEM_OS2_CUI = 5164 IMAGE_SUBSYSTEM_POSIX_CUI = 7165 IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8166 IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9167 IMAGE_SUBSYSTEM_EFI_APPLICATION = 10168 IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11169 IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12170 IMAGE_SUBSYSTEM_EFI_ROM = 13171 IMAGE_SUBSYSTEM_XBOX = 14172 IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16173)174 175// OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics176// values. These can be combined together.177const (178 IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA = 0x0020179 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE = 0x0040180 IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY = 0x0080181 IMAGE_DLLCHARACTERISTICS_NX_COMPAT = 0x0100182 IMAGE_DLLCHARACTERISTICS_NO_ISOLATION = 0x0200183 IMAGE_DLLCHARACTERISTICS_NO_SEH = 0x0400184 IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800185 IMAGE_DLLCHARACTERISTICS_APPCONTAINER = 0x1000186 IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000187 IMAGE_DLLCHARACTERISTICS_GUARD_CF = 0x4000188 IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000189)190 