Documentation
¶
Index ¶
- Constants
- Variables
- func PowerOfTwo(val uint32) bool
- func SetFlags(flagMap map[string]bool, charMap map[string]uint32, characteristic uint32)
- type BaseRelocation
- type BaseRelocationD
- type BaseRelocationEntry
- type BaseRelocationEntryD
- type BoundForwarderRef
- type BoundForwarderRefD
- type BoundImportDescriptor
- type BoundImportDescriptorD
- type COFFFileHeader
- type COFFFileHeaderD
- type DataDirectory
- type DataDirectoryD
- type DebugDirectory
- type DebugDirectoryD
- type DelayImportDescriptor
- type DelayImportDescriptorD
- type DosHeader
- type DosHeaderD
- type ExportData
- type ExportDirectory
- type ExportDirectoryD
- type ImportData
- type ImportData64
- type ImportDescriptor
- type ImportDescriptorD
- type LoadConfigDirectory
- type LoadConfigDirectory64
- type LoadConfigDirectory64D
- type LoadConfigDirectoryD
- type NTHeader
- type NTHeaderD
- type OptionalHeader
- type OptionalHeader64
- type OptionalHeader64D
- type OptionalHeaderD
- type PEFile
- type ResourceDataEntry
- type ResourceDataEntryD
- type ResourceDirectory
- type ResourceDirectoryD
- type ResourceDirectoryEntry
- type ResourceDirectoryEntryD
- type SectionHeader
- type SectionHeaderD
- type String
- type StringD
- type StringFileInfo
- type StringFileInfoD
- type StringTable
- type StringTableD
- type TLSDirectory
- type TLSDirectory64
- type TLSDirectory64D
- type TLSDirectoryD
- type ThunkData
- type ThunkData64
- type ThunkData64D
- type ThunkDataD
- type VSFixedFileInfo
- type VSFixedFileInfoD
- type VSVersionInfo
- type VSVersionInfoD
- type Var
- type VarD
Constants ¶
const ( // MaxStringLength limits the length of a string to be retrieved from the file. // It's there to prevent loading massive amounts of data from memory mapped // files. Strings longer than 1MB should be rather rare. // FIXME: not referenced/used anywhere? MaxStringLength = 0x100000 // 2^20 IMAGE_DOS_SIGNATURE = 0x5A4D IMAGE_DOSZM_SIGNATURE = 0x4D5A IMAGE_NE_SIGNATURE = 0x454E IMAGE_LE_SIGNATURE = 0x454C IMAGE_LX_SIGNATURE = 0x584C IMAGE_TE_SIGNATURE = 0x5A56 // Terse Executables have a 'VZ' signature IMAGE_NT_SIGNATURE = 0x00004550 IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 IMAGE_ORDINAL_FLAG = uint32(0x80000000) IMAGE_ORDINAL_FLAG64 = uint64(0x8000000000000000) OPTIONAL_HEADER_MAGIC_PE = 0x10b OPTIONAL_HEADER_MAGIC_PE_PLUS = 0x20b FILE_ALIGNMENT_HARDCODED_VALUE = 0x200 )
Variables ¶
var DebugTypes = map[string]uint32{
"IMAGE_DEBUG_TYPE_UNKNOWN": 0,
"IMAGE_DEBUG_TYPE_COFF": 1,
"IMAGE_DEBUG_TYPE_CODEVIEW": 2,
"IMAGE_DEBUG_TYPE_FPO": 3,
"IMAGE_DEBUG_TYPE_MISC": 4,
"IMAGE_DEBUG_TYPE_EXCEPTION": 5,
"IMAGE_DEBUG_TYPE_FIXUP": 6,
"IMAGE_DEBUG_TYPE_OMAP_TO_SRC": 7,
"IMAGE_DEBUG_TYPE_OMAP_FROM_SRC": 8,
"IMAGE_DEBUG_TYPE_BORLAND": 9,
"IMAGE_DEBUG_TYPE_RESERVED10": 10,
"IMAGE_DEBUG_TYPE_CLSID": 11,
}
DebugTypes is a lookup from the string name to flag value
var DirectoryEntryTypes = map[uint32]string{
0: "IMAGE_DIRECTORY_ENTRY_EXPORT",
1: "IMAGE_DIRECTORY_ENTRY_IMPORT",
2: "IMAGE_DIRECTORY_ENTRY_RESOURCE",
3: "IMAGE_DIRECTORY_ENTRY_EXCEPTION",
4: "IMAGE_DIRECTORY_ENTRY_SECURITY",
5: "IMAGE_DIRECTORY_ENTRY_BASERELOC",
6: "IMAGE_DIRECTORY_ENTRY_DEBUG",
7: "IMAGE_DIRECTORY_ENTRY_COPYRIGHT",
8: "IMAGE_DIRECTORY_ENTRY_GLOBALPTR",
9: "IMAGE_DIRECTORY_ENTRY_TLS",
10: "IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG",
11: "IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT",
12: "IMAGE_DIRECTORY_ENTRY_IAT",
13: "IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT",
14: "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR",
15: "IMAGE_DIRECTORY_ENTRY_RESERVED",
}
DirectoryEntryTypes provides names for the entries in the data directory header
var DllCharacteristics = map[string]uint32{
"IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA": 0x0020,
"IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE": 0x0040,
"IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY": 0x0080,
"IMAGE_DLLCHARACTERISTICS_NX_COMPAT": 0x0100,
"IMAGE_DLLCHARACTERISTICS_NO_ISOLATION": 0x0200,
"IMAGE_DLLCHARACTERISTICS_NO_SEH": 0x0400,
"IMAGE_DLLCHARACTERISTICS_NO_BIND": 0x0800,
"IMAGE_DLLCHARACTERISTICS_APPCONTAINER": 0x1000,
"IMAGE_DLLCHARACTERISTICS_WDM_DRIVER": 0x2000,
"IMAGE_DLLCHARACTERISTICS_GUARD_CF": 0x4000,
"IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE": 0x8000,
}
DllCharacteristics flags define some OS specific functionality
var ImageCharacteristics = map[string]uint32{
"IMAGE_FILE_RELOCS_STRIPPED": 0x0001,
"IMAGE_FILE_EXECUTABLE_IMAGE": 0x0002,
"IMAGE_FILE_LINE_NUMS_STRIPPED": 0x0004,
"IMAGE_FILE_LOCAL_SYMS_STRIPPED": 0x0008,
"IMAGE_FILE_AGGRESIVE_WS_TRIM": 0x0010,
"IMAGE_FILE_LARGE_ADDRESS_AWARE": 0x0020,
"IMAGE_FILE_16BIT_MACHINE": 0x0040,
"IMAGE_FILE_BYTES_REVERSED_LO": 0x0080,
"IMAGE_FILE_32BIT_MACHINE": 0x0100,
"IMAGE_FILE_DEBUG_STRIPPED": 0x0200,
"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP": 0x0400,
"IMAGE_FILE_NET_RUN_FROM_SWAP": 0x0800,
"IMAGE_FILE_SYSTEM": 0x1000,
"IMAGE_FILE_DLL": 0x2000,
"IMAGE_FILE_UP_SYSTEM_ONLY": 0x4000,
"IMAGE_FILE_BYTES_REVERSED_HI": 0x8000,
}
ImageCharacteristics is a lookup from the string name to flag value
Instantiated as Pe.COFFFileHeader.Flags
var Lang = map[string]uint32{
"LANG_NEUTRAL": 0x00,
"LANG_INVARIANT": 0x7f,
"LANG_AFRIKAANS": 0x36,
"LANG_ALBANIAN": 0x1c,
"LANG_ARABIC": 0x01,
"LANG_ARMENIAN": 0x2b,
"LANG_ASSAMESE": 0x4d,
"LANG_AZERI": 0x2c,
"LANG_BASQUE": 0x2d,
"LANG_BELARUSIAN": 0x23,
"LANG_BENGALI": 0x45,
"LANG_BULGARIAN": 0x02,
"LANG_CATALAN": 0x03,
"LANG_CHINESE": 0x04,
"LANG_CROATIAN": 0x1a,
"LANG_CZECH": 0x05,
"LANG_DANISH": 0x06,
"LANG_DIVEHI": 0x65,
"LANG_DUTCH": 0x13,
"LANG_ENGLISH": 0x09,
"LANG_ESTONIAN": 0x25,
"LANG_FAEROESE": 0x38,
"LANG_FARSI": 0x29,
"LANG_FINNISH": 0x0b,
"LANG_FRENCH": 0x0c,
"LANG_GALICIAN": 0x56,
"LANG_GEORGIAN": 0x37,
"LANG_GERMAN": 0x07,
"LANG_GREEK": 0x08,
"LANG_GUJARATI": 0x47,
"LANG_HEBREW": 0x0d,
"LANG_HINDI": 0x39,
"LANG_HUNGARIAN": 0x0e,
"LANG_ICELANDIC": 0x0f,
"LANG_INDONESIAN": 0x21,
"LANG_ITALIAN": 0x10,
"LANG_JAPANESE": 0x11,
"LANG_KANNADA": 0x4b,
"LANG_KASHMIRI": 0x60,
"LANG_KAZAK": 0x3f,
"LANG_KONKANI": 0x57,
"LANG_KOREAN": 0x12,
"LANG_KYRGYZ": 0x40,
"LANG_LATVIAN": 0x26,
"LANG_LITHUANIAN": 0x27,
"LANG_MACEDONIAN": 0x2f,
"LANG_MALAY": 0x3e,
"LANG_MALAYALAM": 0x4c,
"LANG_MANIPURI": 0x58,
"LANG_MARATHI": 0x4e,
"LANG_MONGOLIAN": 0x50,
"LANG_NEPALI": 0x61,
"LANG_NORWEGIAN": 0x14,
"LANG_ORIYA": 0x48,
"LANG_POLISH": 0x15,
"LANG_PORTUGUESE": 0x16,
"LANG_PUNJABI": 0x46,
"LANG_ROMANIAN": 0x18,
"LANG_RUSSIAN": 0x19,
"LANG_SANSKRIT": 0x4f,
"LANG_SERBIAN": 0x1a,
"LANG_SINDHI": 0x59,
"LANG_SLOVAK": 0x1b,
"LANG_SLOVENIAN": 0x24,
"LANG_SPANISH": 0x0a,
"LANG_SWAHILI": 0x41,
"LANG_SWEDISH": 0x1d,
"LANG_SYRIAC": 0x5a,
"LANG_TAMIL": 0x49,
"LANG_TATAR": 0x44,
"LANG_TELUGU": 0x4a,
"LANG_THAI": 0x1e,
"LANG_TURKISH": 0x1f,
"LANG_UKRAINIAN": 0x22,
"LANG_URDU": 0x20,
"LANG_UZBEK": 0x43,
"LANG_VIETNAMESE": 0x2a,
"LANG_GAELIC": 0x3c,
"LANG_MALTESE": 0x3a,
"LANG_MAORI": 0x28,
"LANG_RHAETO_ROMANCE": 0x17,
"LANG_SAAMI": 0x3b,
"LANG_SORBIAN": 0x2e,
"LANG_SUTU": 0x30,
"LANG_TSONGA": 0x31,
"LANG_TSWANA": 0x32,
"LANG_VENDA": 0x33,
"LANG_XHOSA": 0x34,
"LANG_ZULU": 0x35,
"LANG_ESPERANTO": 0x8f,
"LANG_WALON": 0x90,
"LANG_CORNISH": 0x91,
"LANG_WELSH": 0x92,
"LANG_BRETON": 0x93,
}
Lang language definitions
var MachineTypes = map[string]uint16{
"IMAGE_FILE_MACHINE_UNKNOWN": 0,
"IMAGE_FILE_MACHINE_I386": 0x014c,
"IMAGE_FILE_MACHINE_R3000": 0x0162,
"IMAGE_FILE_MACHINE_R4000": 0x0166,
"IMAGE_FILE_MACHINE_R10000": 0x0168,
"IMAGE_FILE_MACHINE_WCEMIPSV2": 0x0169,
"IMAGE_FILE_MACHINE_ALPHA": 0x0184,
"IMAGE_FILE_MACHINE_SH3": 0x01a2,
"IMAGE_FILE_MACHINE_SH3DSP": 0x01a3,
"IMAGE_FILE_MACHINE_SH3E": 0x01a4,
"IMAGE_FILE_MACHINE_SH4": 0x01a6,
"IMAGE_FILE_MACHINE_SH5": 0x01a8,
"IMAGE_FILE_MACHINE_ARM": 0x01c0,
"IMAGE_FILE_MACHINE_THUMB": 0x01c2,
"IMAGE_FILE_MACHINE_ARMNT": 0x01c4,
"IMAGE_FILE_MACHINE_AM33": 0x01d3,
"IMAGE_FILE_MACHINE_POWERPC": 0x01f0,
"IMAGE_FILE_MACHINE_POWERPCFP": 0x01f1,
"IMAGE_FILE_MACHINE_IA64": 0x0200,
"IMAGE_FILE_MACHINE_MIPS16": 0x0266,
"IMAGE_FILE_MACHINE_ALPHA64": 0x0284,
"IMAGE_FILE_MACHINE_AXP64": 0x0284,
"IMAGE_FILE_MACHINE_MIPSFPU": 0x0366,
"IMAGE_FILE_MACHINE_MIPSFPU16": 0x0466,
"IMAGE_FILE_MACHINE_TRICORE": 0x0520,
"IMAGE_FILE_MACHINE_CEF": 0x0cef,
"IMAGE_FILE_MACHINE_EBC": 0x0ebc,
"IMAGE_FILE_MACHINE_AMD64": 0x8664,
"IMAGE_FILE_MACHINE_M32R": 0x9041,
"IMAGE_FILE_MACHINE_CEE": 0xc0ee,
}
MachineTypes is a lookup from string name to the value of the flag
var RelocationTypes = map[string]uint32{
"IMAGE_REL_BASED_ABSOLUTE": 0,
"IMAGE_REL_BASED_HIGH": 1,
"IMAGE_REL_BASED_LOW": 2,
"IMAGE_REL_BASED_HIGHLOW": 3,
"IMAGE_REL_BASED_HIGHADJ": 4,
"IMAGE_REL_BASED_MIPS_JMPADDR": 5,
"IMAGE_REL_BASED_SECTION": 6,
"IMAGE_REL_BASED_REL": 7,
"IMAGE_REL_BASED_MIPS_JMPADDR16": 9,
"IMAGE_REL_BASED_IA64_IMM64": 9,
"IMAGE_REL_BASED_DIR64": 10,
"IMAGE_REL_BASED_HIGH3ADJ": 11,
}
RelocationTypes is map from the string name to the flag value
var ResourceType = map[string]uint32{
"RT_CURSOR": 1,
"RT_BITMAP": 2,
"RT_ICON": 3,
"RT_MENU": 4,
"RT_DIALOG": 5,
"RT_STRING": 6,
"RT_FONTDIR": 7,
"RT_FONT": 8,
"RT_ACCELERATOR": 9,
"RT_RCDATA": 10,
"RT_MESSAGETABLE": 11,
"RT_GROUP_CURSOR": 12,
"RT_GROUP_ICON": 14,
"RT_VERSION": 16,
"RT_DLGINCLUDE": 17,
"RT_PLUGPLAY": 19,
"RT_VXD": 20,
"RT_ANICURSOR": 21,
"RT_ANIICON": 22,
"RT_HTML": 23,
"RT_MANIFEST": 24,
}
ResourceType names and flag values
var SectionCharacteristics = map[string]uint32{
"IMAGE_SCN_TYPE_REG": 0x00000000,
"IMAGE_SCN_TYPE_DSECT": 0x00000001,
"IMAGE_SCN_TYPE_NOLOAD": 0x00000002,
"IMAGE_SCN_TYPE_GROUP": 0x00000004,
"IMAGE_SCN_TYPE_NO_PAD": 0x00000008,
"IMAGE_SCN_TYPE_COPY": 0x00000010,
"IMAGE_SCN_CNT_CODE": 0x00000020,
"IMAGE_SCN_CNT_INITIALIZED_DATA": 0x00000040,
"IMAGE_SCN_CNT_UNINITIALIZED_DATA": 0x00000080,
"IMAGE_SCN_LNK_OTHER": 0x00000100,
"IMAGE_SCN_LNK_INFO": 0x00000200,
"IMAGE_SCN_LNK_OVER": 0x00000400,
"IMAGE_SCN_LNK_REMOVE": 0x00000800,
"IMAGE_SCN_LNK_COMDAT": 0x00001000,
"IMAGE_SCN_MEM_PROTECTED": 0x00004000,
"IMAGE_SCN_NO_DEFER_SPEC_EXC": 0x00004000,
"IMAGE_SCN_GPREL": 0x00008000,
"IMAGE_SCN_MEM_FARDATA": 0x00008000,
"IMAGE_SCN_MEM_SYSHEAP": 0x00010000,
"IMAGE_SCN_MEM_PURGEABLE": 0x00020000,
"IMAGE_SCN_MEM_16BIT": 0x00020000,
"IMAGE_SCN_MEM_LOCKED": 0x00040000,
"IMAGE_SCN_MEM_PRELOAD": 0x00080000,
"IMAGE_SCN_ALIGN_1BYTES": 0x00100000,
"IMAGE_SCN_ALIGN_2BYTES": 0x00200000,
"IMAGE_SCN_ALIGN_4BYTES": 0x00300000,
"IMAGE_SCN_ALIGN_8BYTES": 0x00400000,
"IMAGE_SCN_ALIGN_16BYTES": 0x00500000,
"IMAGE_SCN_ALIGN_32BYTES": 0x00600000,
"IMAGE_SCN_ALIGN_64BYTES": 0x00700000,
"IMAGE_SCN_ALIGN_128BYTES": 0x00800000,
"IMAGE_SCN_ALIGN_256BYTES": 0x00900000,
"IMAGE_SCN_ALIGN_512BYTES": 0x00A00000,
"IMAGE_SCN_ALIGN_1024BYTES": 0x00B00000,
"IMAGE_SCN_ALIGN_2048BYTES": 0x00C00000,
"IMAGE_SCN_ALIGN_4096BYTES": 0x00D00000,
"IMAGE_SCN_ALIGN_8192BYTES": 0x00E00000,
"IMAGE_SCN_ALIGN_MASK": 0x00F00000,
"IMAGE_SCN_LNK_NRELOC_OVFL": 0x01000000,
"IMAGE_SCN_MEM_DISCARDABLE": 0x02000000,
"IMAGE_SCN_MEM_NOT_CACHED": 0x04000000,
"IMAGE_SCN_MEM_NOT_PAGED": 0x08000000,
"IMAGE_SCN_MEM_SHARED": 0x10000000,
"IMAGE_SCN_MEM_EXECUTE": 0x20000000,
"IMAGE_SCN_MEM_READ": 0x40000000,
"IMAGE_SCN_MEM_WRITE": 0x80000000,
}
SectionCharacteristics is a lookup from the string name to flag value
var Sublang = map[string]uint32{}/* 103 elements not displayed */
Sublang sublanguage definitions
var SubsystemTypes = map[string]uint32{
"IMAGE_SUBSYSTEM_UNKNOWN": 0,
"IMAGE_SUBSYSTEM_NATIVE": 1,
"IMAGE_SUBSYSTEM_WINDOWS_GUI": 2,
"IMAGE_SUBSYSTEM_WINDOWS_CUI": 3,
"IMAGE_SUBSYSTEM_OS2_CUI": 5,
"IMAGE_SUBSYSTEM_POSIX_CUI": 7,
"IMAGE_SUBSYSTEM_NATIVE_WINDOWS": 8,
"IMAGE_SUBSYSTEM_WINDOWS_CE_GUI": 9,
"IMAGE_SUBSYSTEM_EFI_APPLICATION": 10,
"IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER": 11,
"IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER": 12,
"IMAGE_SUBSYSTEM_EFI_ROM": 13,
"IMAGE_SUBSYSTEM_XBOX": 14,
"IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION": 16,
}
SubsystemTypes is a lookup from the string name to flag value
Functions ¶
func PowerOfTwo ¶
PowerOfTwo Returns whether this value is a power of 2
Types ¶
type BaseRelocation ¶
type BaseRelocation struct {
Data BaseRelocationD
FileOffset uint32
Size uint32
}
BaseRelocation wrapper
func (*BaseRelocation) String ¶
func (br *BaseRelocation) String() string
type BaseRelocationD ¶
BaseRelocationD raw field data read from the file
type BaseRelocationEntry ¶
type BaseRelocationEntry struct {
Data BaseRelocationEntryD
FileOffset uint32
Size uint32
}
BaseRelocationEntry wrapper
func (*BaseRelocationEntry) String ¶
func (bre *BaseRelocationEntry) String() string
type BaseRelocationEntryD ¶
type BaseRelocationEntryD struct {
Data uint16
}
BaseRelocationEntryD raw field data read from the file
type BoundForwarderRef ¶
type BoundForwarderRef struct {
Data BoundForwarderRefD
FileOffset uint32
Size uint32
}
BoundForwarderRef wrapper
func (*BoundForwarderRef) String ¶
func (bfr *BoundForwarderRef) String() string
type BoundForwarderRefD ¶
BoundForwarderRefD raw field data from file
type BoundImportDescriptor ¶
type BoundImportDescriptor struct {
Data BoundImportDescriptorD
FileOffset uint32
Size uint32
}
BoundImportDescriptor wrapper
func (*BoundImportDescriptor) String ¶
func (bid *BoundImportDescriptor) String() string
type BoundImportDescriptorD ¶
type BoundImportDescriptorD struct {
TimeDateStamp uint32
OffsetModuleName uint16
NumberOfModuleForwarderRefs uint16
}
BoundImportDescriptorD raw field data read from file
type COFFFileHeader ¶
type COFFFileHeader struct {
Data COFFFileHeaderD
FileOffset uint32
Flags map[string]bool
Size uint32
}
COFFFileHeader wrapper
func (*COFFFileHeader) String ¶
func (fh *COFFFileHeader) String() string
type COFFFileHeaderD ¶
type COFFFileHeaderD struct {
Machine uint16
NumberOfSections uint16
TimeDateStamp uint32
PointerToSymbolTable uint32
NumberOfSymbols uint32
SizeOfOptionalHeader uint16
Characteristics uint16
}
COFFFileHeaderD raw data field read from the file
type DataDirectory ¶
type DataDirectory struct {
Data DataDirectoryD
FileOffset uint32
Name string
Size uint32
}
DataDirectory wrapper
func (*DataDirectory) String ¶
func (dd *DataDirectory) String() string
type DataDirectoryD ¶
DataDirectoryD raw data field read from the file
type DebugDirectory ¶
type DebugDirectory struct {
Data DebugDirectoryD
FileOffset uint32
Flags map[string]bool
Size uint32
}
DebugDirectory wrapper
func (*DebugDirectory) String ¶
func (dd *DebugDirectory) String() string
type DebugDirectoryD ¶
type DebugDirectoryD struct {
Characteristics uint32
TimeDateStamp uint32
MajorVersion uint16
MinorVersion uint16
Type uint32
SizeOfData uint32
AddressOfRawData uint32
PointerToRawData uint32
}
DebugDirectoryD raw field data read from the file
type DelayImportDescriptor ¶
type DelayImportDescriptor struct {
Data DelayImportDescriptorD
FileOffset uint32
Flags map[string]bool
Size uint32
}
DelayImportDescriptor wrapper
func (*DelayImportDescriptor) String ¶
func (did *DelayImportDescriptor) String() string
type DelayImportDescriptorD ¶
type DelayImportDescriptorD struct {
DIgrAttrs uint32
DIszName uint32
DIphmod uint32
DIpIAT uint32
DIpINT uint32
DIpBoundIAT uint32
DIpUnloadIAT uint32
DIdwTimeStamp uint32
}
DelayImportDescriptorD raw data field read from the file
type DosHeader ¶
type DosHeader struct {
Data DosHeaderD
FileOffset uint32
Flags map[string]bool
Size uint32
}
DosHeader wrapper
type DosHeaderD ¶
type DosHeaderD struct {
E_magic uint16
E_cblp uint16
E_cp uint16
E_crlc uint16
E_cparhd uint16
E_minalloc uint16
E_maxalloc uint16
E_ss uint16
E_sp uint16
E_csum uint16
E_ip uint16
E_cs uint16
E_lfarlc uint16
E_ovno uint16
E_res [8]uint8
E_oemid uint16
E_oeminfo uint16
E_res2 [20]uint8
E_lfanew uint32
}
DosHeaderD raw data field read from the file
type ExportData ¶
type ExportData struct {
Ordinal uint16
OrdinalOffset uint32
Address uint32
AddressOffset uint32
Name []byte //
NameOffset uint32 //
Forwarder []byte
ForwarderOffset uint32
}
ExportData wrapper
func (ExportData) String ¶
func (ed ExportData) String() string
type ExportDirectory ¶
type ExportDirectory struct {
Data ExportDirectoryD
FileOffset uint32
Flags map[string]bool
Exports []ExportData
Size uint32
}
ExportDirectory wrapper
func (*ExportDirectory) String ¶
func (ed *ExportDirectory) String() string
type ExportDirectoryD ¶
type ExportDirectoryD struct {
Characteristics uint32
TimeDateStamp uint32
MajorVersion uint16
MinorVersion uint16
Name uint32
Base uint32
NumberOfFunctions uint32
NumberOfNames uint32
AddressOfFunctions uint32
AddressOfNames uint32
AddressOfNameOrdinals uint32
}
ExportDirectoryD raw data field read from the file
type ImportData ¶
type ImportData struct {
StructTable ThunkData
StructIat ThunkData
ImportByOrdinal bool
Ordinal uint32
OrdinalOffset uint32
Hint uint16
Name []byte
NameOffset uint32
Bound uint32
Address uint32
HintNameTableRva uint32
ThunkOffset uint32
ThunkRva uint32
}
ImportData wrapper
func (ImportData) String ¶
func (id ImportData) String() string
type ImportData64 ¶
type ImportData64 struct {
StructTable *ThunkData64
StructIat *ThunkData64
ImportByOrdinal bool
Ordinal uint64
OrdinalOffset uint64
Hint uint16
Name []byte
NameOffset uint64
Bound uint64
Address uint64
HintNameTableRva uint64
ThunkOffset uint64
ThunkRva uint64
}
ImportData64 64-bit version wrapper
func (ImportData64) String ¶
func (id ImportData64) String() string
type ImportDescriptor ¶
type ImportDescriptor struct {
Data ImportDescriptorD
FileOffset uint32
Flags map[string]bool
Dll []byte
Imports []ImportData
Imports64 []ImportData64
Size uint32
}
ImportDescriptor wrapper
func (*ImportDescriptor) String ¶
func (id *ImportDescriptor) String() string
type ImportDescriptorD ¶
type ImportDescriptorD struct {
Characteristics uint32
TimeDateStamp uint32
ForwarderChain uint32
Name uint32
FirstThunk uint32
}
ImportDescriptorD raw data field read from the file
type LoadConfigDirectory ¶
type LoadConfigDirectory struct {
Data LoadConfigDirectoryD
FileOffset uint32
Flags map[string]bool
Size uint32
}
LoadConfigDirectory wrapper
func (*LoadConfigDirectory) String ¶
func (lcd *LoadConfigDirectory) String() string
type LoadConfigDirectory64 ¶
type LoadConfigDirectory64 struct {
Data LoadConfigDirectory64D
FileOffset uint32
Flags map[string]bool
Size uint32
}
LoadConfigDirectory64 wrapper
func (*LoadConfigDirectory64) String ¶
func (lcd *LoadConfigDirectory64) String() string
type LoadConfigDirectory64D ¶
type LoadConfigDirectory64D struct {
Size uint32
TimeDateStamp uint32
MajorVersion uint16
MinorVersion uint16
GlobalFlagsClear uint32
GlobalFlagsSet uint32
CriticalSectionDefaultTimeout uint32
DeCommitFreeBlockThreshold uint64
DeCommitTotalFreeThreshold uint64
LockPrefixTable uint64
MaximumAllocationSize uint64
VirtualMemoryThreshold uint64
ProcessAffinityMask uint64
ProcessHeapFlags uint32
CSDVersion uint16
Reserved1 uint16
EditList uint64
SecurityCookie uint64
SEHandlerTable uint64
SEHandlerCount uint64
GuardCFCheckFunctionPointer uint64
Reserved2 uint64
GuardCFFunctionTable uint64
GuardCFFunctionCount uint64
GuardFlags uint32
}
LoadConfigDirectory64D raw field data read from file
type LoadConfigDirectoryD ¶
type LoadConfigDirectoryD struct {
Size uint32
TimeDateStamp uint32
MajorVersion uint16
MinorVersion uint16
GlobalFlagsClear uint32
GlobalFlagsSet uint32
CriticalSectionDefaultTimeout uint32
DeCommitFreeBlockThreshold uint32
DeCommitTotalFreeThreshold uint32
LockPrefixTable uint32
MaximumAllocationSize uint32
VirtualMemoryThreshold uint32
ProcessHeapFlags uint32
ProcessAffinityMask uint32
CSDVersion uint16
Reserved1 uint16
EditList uint32
SecurityCookie uint32
SEHandlerTable uint32
SEHandlerCount uint32
GuardCFCheckFunctionPointer uint32
Reserved2 uint32
GuardCFFunctionTable uint32
GuardCFFunctionCount uint32
GuardFlags uint32
}
LoadConfigDirectoryD raw field contents read from the file
type NTHeaderD ¶
type NTHeaderD struct {
Signature uint32
}
NTHeaderD raw data field read from the file
type OptionalHeader ¶
type OptionalHeader struct {
Data OptionalHeaderD
FileOffset uint32
Flags map[string]bool
Size uint32
DataDirs map[string]DataDirectory
}
OptionalHeader wrapper
func (*OptionalHeader) String ¶
func (od *OptionalHeader) String() string
type OptionalHeader64 ¶
type OptionalHeader64 struct {
Data OptionalHeader64D
FileOffset uint32
Flags map[string]bool
DataDirs map[string]DataDirectory
Size uint32
}
OptionalHeader64 wrapper
func (*OptionalHeader64) String ¶
func (oh *OptionalHeader64) String() string
type OptionalHeader64D ¶
type OptionalHeader64D struct {
Magic uint16
MajorLinkerVersion uint8
MinorLinkerVersion uint8
SizeOfCode uint32
SizeOfInitializedData uint32
SizeOfUninitializedData uint32
AddressOfEntryPoint uint32
BaseOfCode uint32
BaseOfData uint32
ImageBase uint32
SectionAlignment uint32
FileAlignment uint32
MajorOperatingSystemVersion uint16
MinorOperatingSystemVersion uint16
MajorImageVersion uint16
MinorImageVersion uint16
MajorSubsystemVersion uint16
MinorSubsystemVersion uint16
Reserved1 uint32
SizeOfImage uint32
SizeOfHeaders uint32
CheckSum uint32
Subsystem uint16
DllCharacteristics uint16
SizeOfStackReserve uint64 // Different after this point, specific checks needed
SizeOfStackCommit uint64
SizeOfHeapReserve uint64
SizeOfHeapCommit uint64
LoaderFlags uint32
NumberOfRvaAndSizes uint32
}
OptionalHeader64D raw data field read from the file
type OptionalHeaderD ¶
type OptionalHeaderD struct {
Magic uint16
MajorLinkerVersion uint8
MinorLinkerVersion uint8
SizeOfCode uint32
SizeOfInitializedData uint32
SizeOfUninitializedData uint32
AddressOfEntryPoint uint32
BaseOfCode uint32
BaseOfData uint32
ImageBase uint32
SectionAlignment uint32
FileAlignment uint32
MajorOperatingSystemVersion uint16
MinorOperatingSystemVersion uint16
MajorImageVersion uint16
MinorImageVersion uint16
MajorSubsystemVersion uint16
MinorSubsystemVersion uint16
Reserved1 uint32
SizeOfImage uint32
SizeOfHeaders uint32
CheckSum uint32
Subsystem uint16
DllCharacteristics uint16
SizeOfStackReserve uint32
SizeOfStackCommit uint32
SizeOfHeapReserve uint32
SizeOfHeapCommit uint32
LoaderFlags uint32
NumberOfRvaAndSizes uint32
}
OptionalHeaderD raw data field read from the file
type PEFile ¶
type PEFile struct {
Filename string
DosHeader DosHeader
NTHeader NTHeader
COFFFileHeader COFFFileHeader
OptionalHeader *OptionalHeader
OptionalHeader64 *OptionalHeader64
Sections []SectionHeader
ImportDescriptors []ImportDescriptor
ExportDirectory *ExportDirectory
Errors []error
// contains filtered or unexported fields
}
PEFile is a representation of the PE/COFF file with some helpful abstractions
type ResourceDataEntry ¶
type ResourceDataEntry struct {
Data ResourceDataEntryD
FileOffset uint32
Size uint32
}
ResourceDataEntry wrapper
func (*ResourceDataEntry) String ¶
func (rde *ResourceDataEntry) String() string
type ResourceDataEntryD ¶
ResourceDataEntryD raw data field read from the file
type ResourceDirectory ¶
type ResourceDirectory struct {
Data ResourceDirectoryD
FileOffset uint32
Flags map[string]bool
Size uint32
}
ResourceDirectory wrapper
func (*ResourceDirectory) String ¶
func (rd *ResourceDirectory) String() string
type ResourceDirectoryD ¶
type ResourceDirectoryD struct {
Characteristics uint32
TimeDateStamp uint32
MajorVersion uint16
MinorVersion uint16
NumberOfNamedEntries uint16
NumberOfIDEntries uint16
}
ResourceDirectoryD raw data field read from the file
type ResourceDirectoryEntry ¶
type ResourceDirectoryEntry struct {
Data ResourceDirectoryEntryD
FileOffset uint32
Size uint32
}
ResourceDirectoryEntry wrapper
func (*ResourceDirectoryEntry) String ¶
func (rde *ResourceDirectoryEntry) String() string
type ResourceDirectoryEntryD ¶
ResourceDirectoryEntryD raw data field read from the file
type SectionHeader ¶
type SectionHeader struct {
Data SectionHeaderD
FileOffset uint32
Flags map[string]bool
Size uint32
NextHeaderAddr uint32
}
SectionHeader wrapper
func (*SectionHeader) String ¶
func (sh *SectionHeader) String() string
type SectionHeaderD ¶
type SectionHeaderD struct {
Name [8]uint8
Misc uint32
VirtualAddress uint32
SizeOfRawData uint32
PointerToRawData uint32
PointerToRelocations uint32
PointerToLinenumbers uint32
NumberOfRelocations uint16
NumberOfLinenumbers uint16
Characteristics uint32
}
SectionHeaderD raw data field read from the file
type StringFileInfo ¶
type StringFileInfo struct {
Data StringFileInfoD
FileOffset uint32
Size uint32
}
StringFileInfo wrapper
func (*StringFileInfo) String ¶
func (s *StringFileInfo) String() string
type StringFileInfoD ¶
StringFileInfoD raw data field read from the file
type StringTable ¶
type StringTable struct {
Data StringTableD
FileOffset uint32
Size uint32
}
StringTable wrapper
func (*StringTable) String ¶
func (s *StringTable) String() string
type StringTableD ¶
StringTableD raw data field read from the file
type TLSDirectory ¶
type TLSDirectory struct {
Data TLSDirectoryD
FileOffset uint32
Flags map[string]bool
Size uint32
}
TLSDirectory wrapper
func (*TLSDirectory) String ¶
func (tlsd *TLSDirectory) String() string
type TLSDirectory64 ¶
type TLSDirectory64 struct {
Data TLSDirectory64D
FileOffset uint32
Flags map[string]bool
Size uint32
}
TLSDirectory64 wrapper
func (*TLSDirectory64) String ¶
func (tlsd *TLSDirectory64) String() string
type TLSDirectory64D ¶
type TLSDirectory64D struct {
StartAddressOfRawData uint64
EndAddressOfRawData uint64
AddressOfIndex uint64
AddressOfCallBacks uint64
SizeOfZeroFill uint32
Characteristics uint32
}
TLSDirectory64D raw field data read from the file
type TLSDirectoryD ¶
type TLSDirectoryD struct {
StartAddressOfRawData uint32
EndAddressOfRawData uint32
AddressOfIndex uint32
AddressOfCallBacks uint32
SizeOfZeroFill uint32
Characteristics uint32
}
TLSDirectoryD raw field data read from the file
type ThunkData ¶
type ThunkData struct {
Data ThunkDataD
FileOffset uint32
Size uint32
}
ThunkData wrapper
type ThunkData64 ¶
type ThunkData64 struct {
Data ThunkData64D
FileOffset uint32
Size uint32
}
ThunkData64 wrapper
func (*ThunkData64) String ¶
func (t *ThunkData64) String() string
type ThunkData64D ¶
type ThunkData64D struct {
AddressOfData uint64
}
ThunkData64D raw field data read from the file
type ThunkDataD ¶
type ThunkDataD struct {
AddressOfData uint32
}
ThunkDataD raw field data read from the file
type VSFixedFileInfo ¶
type VSFixedFileInfo struct {
Data VSFixedFileInfoD
FileOffset uint32
Size uint32
}
VSFixedFileInfo wrapper
func (*VSFixedFileInfo) String ¶
func (v *VSFixedFileInfo) String() string
type VSFixedFileInfoD ¶
type VSFixedFileInfoD struct {
Signature uint32
StrucVersion uint32
FileVersionMS uint32
FileVersionLS uint32
ProductVersionMS uint32
ProductVersionLS uint32
FileFlagsMask uint32
FileFlags uint32
FileOS uint32
FileType uint32
FileSubtype uint32
FileDateMS uint32
FileDateLS uint32
}
VSFixedFileInfoD raw data field read from the file
type VSVersionInfo ¶
type VSVersionInfo struct {
Data VSVersionInfoD
FileOffset uint32
Size uint32
}
VSVersionInfo wrapper
func (*VSVersionInfo) String ¶
func (v *VSVersionInfo) String() string
type VSVersionInfoD ¶
VSVersionInfoD raw data field read from the file