dart_elf library

Support for parsing ELF binary files in Dart

Classes

ElfDynamicSection
An ELF section containing information needed for dynamic linking.
ElfGnuHashTableSection
An ELF section representing a GNU hash table
ElfGnuVersionDefinitionSection
An ELF section representing a GNU version definition table
ElfGnuVersionNeededSection
An ELF section representing a GNU version needed
ElfHashTableSection
An ELF section containing a symbol hash table.
ElfInMemoryBuffer
ElfIoBuffer backed by a list of bytes held in memory
ElfIoBuffer
A class representing an ELF IO buffer with convenience methods for reading specific data types.
ElfNoteSection
A section containing a note.
ElfRandomFileBuffer
ElfIoBuffer backed by a RandomAccessFile
ElfReader
Parser for ELF files.
ElfRelocationSection
A section containing relocation items
ElfSection
An ELF section, which is also a superclass for specific section types.
ElfSegment
An ELF segment
ElfStringTable
An ELF string table that is created from section data.
ElfStringTableSection
A section containing a string table
ElfSymbolTableSection
A section containing a symbol table

Enums

ElfAbiIdentifier
An enum containing operating system/ABI identifiers
ElfArchitectureIdentifier
An enum containing processor architecture identifiers
ElfDynamicFlags
An enum containing dynamic flags
ElfDynamicTag
An enum containing dynamic tag types
ElfFileType
An enum containing file types
ElfNoteType
An enum containing note types
ElfRelocationType
An enum containing relocation types.
ElfSectionHeaderFlags
An enum containing section header flags
ElfSectionType
An enum containing section types
ElfSegmentPermissions
An enum containing segment permissions
ElfSegmentType
An enum containing segment types
ElfSymbolBinding
An enum containing symbol binding types
ElfSymbolType
An enum containing symbol types
ElfSymbolVisibility
An enum containing symbol visibility
ElfWordSize
An enum containing word sizes

Constants

EI_ABIVERSION → const int
EI_ARCH_TYPE → const int
EI_CLASS → const int
EI_DATA → const int
EI_ENTRY → const int
EI_FILE_TYPE → const int
EI_MAG0 → const int
EI_MAG1 → const int
EI_MAG2 → const int
EI_MAG3 → const int
EI_OSABI → const int
EI_PAD → const int
EI_VERSION → const int
ELFCLASS32 → const int
ELFCLASS64 → const int
ELFDATA2LSB → const int
ELFDATA2MSB → const int
ELFMAG0 → const int
ELFMAG1 → const int
ELFMAG2 → const int
ELFMAG3 → const int
EV_CURRENT → const int

Typedefs

ElfDynamicEntry = ({int tag, int value})
ELF dynamic entry record
ElfFileHeader = ({ElfAbiIdentifier abi, int abiVersion, ElfArchitectureIdentifier arch, Uint8List data, int ehsize, Endian endian, int entry, int flags, int phentsize, int phnum, int phoff, int shentsize, int shnum, int shoff, int shstrndx, ElfFileType type, int version, ElfWordSize word})
ELF file header record
ElfGnuAbiDescriptor = ({int major, int minor, int os, int sub})
ELF GNU ABI Descriptor record
ElfGnuBuildId = ({Uint8List raw, String text})
ELF GNU Build Id record
ElfGnuGoldVersion = ({Uint8List raw, String text})
ELF GNU Gold version record
ElfHashTable = ({List<int> bucket, List<int> chain, int nbucket, int nchain})
ELF hash table record
ElfRelocation = ({int? addend, int info, int offset})
ELF relocation record with optional addend
ElfSectionHeader = ({int addr, int align, int entsize, int flags, int info, int link, int nindex, int offset, int size, int type})
ELF section header record
ElfSegmentHeader = ({int align, int flags, int fsize, int msize, int offset, int paddr, ElfSegmentType type, int vaddr})
ELF segment header record
ElfSymbol = ({ElfSymbolBinding binding, int info, int nindex, int other, int shndx, int size, ElfSymbolType type, int value, ElfSymbolVisibility visibility})
ELF symbol record