package pe

Import Path
	debug/pe (on go.dev)

Dependency Relation
	imports 12 packages, and imported by one package

Involved Source Files Package pe implements access to PE (Microsoft Windows Portable Executable) files. # Security This package is not designed to be hardened against adversarial inputs, and is outside the scope of https://go.dev/security/policy. In particular, only basic validation is done when parsing object files. As such, care should be taken when parsing untrusted inputs, as parsing malformed files may consume significant resources, or cause panics. pe.go section.go string.go symbol.go
Package-Level Type Names (total 15)
/* sort by: | */
COFFSymbol represents single COFF symbol table record. Name [8]uint8 NumberOfAuxSymbols uint8 SectionNumber int16 StorageClass uint8 Type uint16 Value uint32 FullName finds real name of symbol sym. Normally name is stored in sym.Name, but if it is longer then 8 characters, it is stored in COFF string table st instead.
COFFSymbolAuxFormat5 describes the expected form of an aux symbol attached to a section definition symbol. The PE format defines a number of different aux symbol formats: format 1 for function definitions, format 2 for .be and .ef symbols, and so on. Format 5 holds extra info associated with a section definition, including number of relocations + line numbers, as well as COMDAT info. See https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-5-section-definitions for more on what's going on here. Checksum uint32 NumLineNumbers uint16 NumRelocs uint16 SecNum uint16 Selection uint8 Size uint32 func (*File).COFFSymbolReadSectionDefAux(idx int) (*COFFSymbolAuxFormat5, error)
Size uint32 VirtualAddress uint32
A File represents an open PE file. // all COFF symbols (including auxiliary symbol records) FileHeader FileHeader FileHeader.Characteristics uint16 FileHeader.Machine uint16 FileHeader.NumberOfSections uint16 FileHeader.NumberOfSymbols uint32 FileHeader.PointerToSymbolTable uint32 FileHeader.SizeOfOptionalHeader uint16 FileHeader.TimeDateStamp uint32 // of type *OptionalHeader32 or *OptionalHeader64 Sections []*Section StringTable StringTable // COFF symbols with auxiliary symbol records removed COFFSymbolReadSectionDefAux returns a blob of auxiliary information (including COMDAT info) for a section definition symbol. Here 'idx' is the index of a section symbol in the main [COFFSymbol] array for the File. Return value is a pointer to the appropriate aux symbol struct. For more info, see: auxiliary symbols: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-symbol-records COMDAT sections: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only auxiliary info for section definitions: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-5-section-definitions Close closes the [File]. If the [File] was created using [NewFile] directly instead of [Open], Close has no effect. (*File) DWARF() (*dwarf.Data, error) ImportedLibraries returns the names of all libraries referred to by the binary f that are expected to be linked with the binary at dynamic link time. ImportedSymbols returns the names of all symbols referred to by the binary f that are expected to be satisfied by other libraries at dynamic load time. It does not return weak symbols. Section returns the first section with the given name, or nil if no such section exists. *File : io.Closer func NewFile(r io.ReaderAt) (*File, error) func Open(name string) (*File, error)
FormatError is unused. The type is retained for compatibility. (*FormatError) Error() string *FormatError : error
Reloc represents a PE COFF relocation. Each section contains its own relocation list. SymbolTableIndex uint32 Type uint16 VirtualAddress uint32
Section provides access to PE COFF section. Embed ReaderAt for ReadAt method. Do not embed SectionReader directly to avoid having Read and Seek. If a client wants Read and Seek it must use Open() to avoid fighting over the seek offset with other clients. Relocs []Reloc SectionHeader SectionHeader SectionHeader.Characteristics uint32 SectionHeader.Name string SectionHeader.NumberOfLineNumbers uint16 SectionHeader.NumberOfRelocations uint16 SectionHeader.Offset uint32 SectionHeader.PointerToLineNumbers uint32 SectionHeader.PointerToRelocations uint32 SectionHeader.Size uint32 SectionHeader.VirtualAddress uint32 SectionHeader.VirtualSize uint32 Data reads and returns the contents of the PE section s. If s.Offset is 0, the section has no contents, and Data will always return a non-nil error. Open returns a new ReadSeeker reading the PE section s. If s.Offset is 0, the section has no contents, and all calls to the returned reader will return a non-nil error. ( Section) ReadAt(p []byte, off int64) (n int, err error) Section : io.ReaderAt func (*File).Section(name string) *Section
StringTable is a COFF string table. String extracts string from COFF string table st at offset start. func (*COFFSymbol).FullName(st StringTable) (string, error)
Symbol is similar to [COFFSymbol] with Name field replaced by Go string. Symbol also does not have NumberOfAuxSymbols. Name string SectionNumber int16 StorageClass uint8 Type uint16 Value uint32
Package-Level Functions (total 2)
NewFile creates a new [File] for accessing a PE binary in an underlying reader.
Open opens the named file using [os.Open] and prepares it for use as a PE binary.
Package-Level Constants (total 97)
const COFFSymbolSize = 18
These constants make up the possible values for the 'Selection' field in an AuxFormat5.
These constants make up the possible values for the 'Selection' field in an AuxFormat5.
These constants make up the possible values for the 'Selection' field in an AuxFormat5.
These constants make up the possible values for the 'Selection' field in an AuxFormat5.
These constants make up the possible values for the 'Selection' field in an AuxFormat5.
These constants make up the possible values for the 'Selection' field in an AuxFormat5.
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
IMAGE_DIRECTORY_ENTRY constants
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
OptionalHeader64.DllCharacteristics and OptionalHeader32.DllCharacteristics values. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Values of IMAGE_FILE_HEADER.Characteristics. These can be combined together.
Section characteristics flags.
Section characteristics flags.
Section characteristics flags.
Section characteristics flags.
Section characteristics flags.
Section characteristics flags.
Section characteristics flags.
Section characteristics flags.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.
OptionalHeader64.Subsystem and OptionalHeader32.Subsystem values.