38 lines
893 B
Go
38 lines
893 B
Go
|
package elf
|
||
|
|
||
|
// ProgramHeaderSize is equal to the size of a program header in bytes.
|
||
|
const ProgramHeaderSize = 56
|
||
|
|
||
|
// ProgramHeader points to the executable part of our program.
|
||
|
type ProgramHeader struct {
|
||
|
Type ProgramType
|
||
|
Flags ProgramFlags
|
||
|
Offset int64
|
||
|
VirtualAddress int64
|
||
|
PhysicalAddress int64
|
||
|
SizeInFile int64
|
||
|
SizeInMemory int64
|
||
|
Align int64
|
||
|
}
|
||
|
|
||
|
type ProgramType int32
|
||
|
|
||
|
const (
|
||
|
ProgramTypeNULL ProgramType = 0
|
||
|
ProgramTypeLOAD ProgramType = 1
|
||
|
ProgramTypeDYNAMIC ProgramType = 2
|
||
|
ProgramTypeINTERP ProgramType = 3
|
||
|
ProgramTypeNOTE ProgramType = 4
|
||
|
ProgramTypeSHLIB ProgramType = 5
|
||
|
ProgramTypePHDR ProgramType = 6
|
||
|
ProgramTypeTLS ProgramType = 7
|
||
|
)
|
||
|
|
||
|
type ProgramFlags int32
|
||
|
|
||
|
const (
|
||
|
ProgramFlagsExecutable ProgramFlags = 0x1
|
||
|
ProgramFlagsWritable ProgramFlags = 0x2
|
||
|
ProgramFlagsReadable ProgramFlags = 0x4
|
||
|
)
|