package elf // SectionHeaderSize is equal to the size of a section header in bytes. const SectionHeaderSize = 64 // SectionHeader points to the data sections of our program. type SectionHeader struct { NameIndex int32 Type SectionType Flags SectionFlags VirtualAddress int64 Offset int64 SizeInFile int64 Link int32 Info int32 Align int64 EntrySize int64 } type SectionType int32 const ( SectionTypeNULL SectionType = 0 SectionTypePROGBITS SectionType = 1 SectionTypeSYMTAB SectionType = 2 SectionTypeSTRTAB SectionType = 3 SectionTypeRELA SectionType = 4 SectionTypeHASH SectionType = 5 SectionTypeDYNAMIC SectionType = 6 SectionTypeNOTE SectionType = 7 SectionTypeNOBITS SectionType = 8 SectionTypeREL SectionType = 9 SectionTypeSHLIB SectionType = 10 SectionTypeDYNSYM SectionType = 11 ) type SectionFlags int64 const ( SectionFlagsWritable SectionFlags = 1 << 0 SectionFlagsAllocate SectionFlags = 1 << 1 SectionFlagsExecutable SectionFlags = 1 << 2 SectionFlagsStrings SectionFlags = 1 << 5 SectionFlagsTLS SectionFlags = 1 << 10 )