objutils.elf package¶
Subpackages¶
Submodules¶
objutils.elf.attributes module¶
objutils.elf.defs module¶
-
class
objutils.elf.defs.
ELFAbiType
¶ Bases:
enum.IntEnum
An enumeration.
-
ELFOSABI_AIX
= 7¶
-
ELFOSABI_ARM
= 97¶
-
ELFOSABI_AROS
= 15¶
-
ELFOSABI_C6000_ELFABI
= 64¶
-
ELFOSABI_C6000_LINUX
= 65¶
-
ELFOSABI_FENIXOS
= 16¶
-
ELFOSABI_FREEBSD
= 9¶
-
ELFOSABI_GNU
= 3¶
-
ELFOSABI_HPUX
= 1¶
-
ELFOSABI_IRIX
= 8¶
-
ELFOSABI_LINUX
= 3¶
-
ELFOSABI_MODESTO
= 11¶
-
ELFOSABI_NETBSD
= 2¶
-
ELFOSABI_NONE
= 0¶
-
ELFOSABI_NSK
= 14¶
-
ELFOSABI_OPENBSD
= 12¶
-
ELFOSABI_OPENVMS
= 13¶
-
ELFOSABI_SOLARIS
= 6¶
-
ELFOSABI_STANDALONE
= 255¶
-
ELFOSABI_TRU64
= 10¶
-
-
class
objutils.elf.defs.
ELFClass
¶ Bases:
enum.IntEnum
An enumeration.
-
ELFCLASS32
= 1¶
-
ELFCLASS64
= 2¶
-
ELFCLASSNONE
= 0¶
-
-
class
objutils.elf.defs.
ELFDataEncoding
¶ Bases:
enum.IntEnum
An enumeration.
-
ELFDATA2LSB
= 1¶
-
ELFDATA2MSB
= 2¶
-
ELFDATANONE
= 0¶
-
-
class
objutils.elf.defs.
ELFMachineType
¶ Bases:
enum.IntEnum
An enumeration.
-
EM_386
= 3¶
-
EM_68HC05
= 72¶
-
EM_68HC08
= 71¶
-
EM_68HC11
= 70¶
-
EM_68HC12
= 53¶
-
EM_68HC16
= 69¶
-
EM_68K
= 4¶
-
EM_860
= 7¶
-
EM_88K
= 5¶ RESERVED 6 Reserved for future use
-
EM_960
= 19¶
-
EM_AARCH64
= 183¶
-
EM_ADAPTEVA_EPIPHANY
= 4643¶
-
EM_ALPHA
= 41¶
-
EM_ALPHA_NO_ABI
= 36902¶
-
EM_ALTERA_NIOS2
= 113¶
-
EM_ARC
= 45¶
-
EM_ARCA
= 109¶
-
EM_ARC_A5
= 93¶
-
EM_ARM
= 40¶
-
EM_AVR
= 83¶
-
EM_AVR32
= 185¶
-
EM_AVR_OLD
= 4183¶
-
EM_BLACKFIN
= 106¶
-
EM_C166
= 116¶
-
EM_CE
= 119¶
-
EM_COLDFIRE
= 52¶
-
EM_COOLRISC_C816
= 51222¶
-
EM_CR
= 103¶
-
EM_CR16
= 177¶
-
EM_CRAYNV2
= 172¶
-
EM_CRIS
= 76¶
-
EM_CRX
= 114¶
-
EM_CUDA
= 190¶
-
EM_CYGNUS_D10V
= 30288¶
-
EM_CYGNUS_D30V
= 30326¶
-
EM_CYGNUS_FR30
= 13104¶
-
EM_CYGNUS_FRV
= 21569¶
-
EM_CYGNUS_M32R
= 36929¶
-
EM_CYGNUS_MEP
= 61453¶
-
EM_CYGNUS_MN10200
= 57005¶
-
EM_CYGNUS_MN10300
= 48879¶
-
EM_CYGNUS_POWERPC
= 36901¶
-
EM_CYGNUS_V850
= 36992¶
-
EM_CYPRESS_M8C
= 161¶
-
EM_D10V
= 85¶
-
EM_D30V
= 86¶
-
EM_DLX
= 23205¶
-
EM_DSP24
= 136¶
-
EM_DSPIC30F
= 118¶
-
EM_DXP
= 112¶
-
EM_ECOG1
= 168¶
-
EM_ECOG16
= 176¶
-
EM_ECOG1X
= 168¶
-
EM_ECOG2
= 134¶
-
EM_ETPU
= 178¶
-
EM_EXCESS
= 111¶
-
EM_F2MC16
= 104¶
-
EM_FIREPATH
= 78¶
-
EM_FR20
= 37¶
-
EM_FR30
= 84¶
-
EM_FX66
= 66¶
-
EM_H8S
= 48¶
-
EM_H8_300
= 46¶
-
EM_H8_300H
= 47¶
-
EM_H8_500
= 49¶
-
EM_HUANY
= 81¶
-
EM_I8051
= 165¶
-
EM_IA_64
= 50¶
-
EM_IP2K
= 101¶
-
EM_IP2K_OLD
= 33303¶
-
EM_IQ2000
= 65210¶
-
EM_JAVELIN
= 77¶
-
EM_L1OM
= 180¶
-
EM_LATTICEMICO32
= 138¶
-
EM_M16C
= 117¶
-
EM_M32
= 1¶
-
EM_M32C
= 120¶
-
EM_M32C_OLD
= 65200¶
-
EM_M32R
= 88¶
-
EM_MANIK
= 171¶
-
EM_MAX
= 102¶
-
EM_MAXQ30
= 169¶
-
EM_MCST_ELBRUS
= 175¶
-
EM_ME16
= 59¶
-
EM_METAG
= 174¶
-
EM_MICROBLAZE
= 189¶
-
EM_MICROBLAZE_OLD
= 47787¶
-
EM_MIPS
= 8¶
-
EM_MIPS_RS3_LE
= 10¶ RESERVED 11-14 Reserved for future use
-
EM_MIPS_X
= 51¶
-
EM_MMA
= 54¶
-
EM_MMDSP_PLUS
= 160¶
-
EM_MMIX
= 80¶
-
EM_MN10200
= 90¶
-
EM_MN10300
= 89¶
-
EM_MOXIE
= 65261¶
-
EM_MSP430
= 105¶
-
EM_MSP430_OLD
= 4185¶
-
EM_MT
= 9520¶
-
EM_NCPU
= 56¶
-
EM_NDR1
= 57¶
-
EM_NDS32
= 167¶
-
EM_NEC_V850
= 29246¶
-
EM_NIOS32
= 65211¶
-
EM_NONE
= 0¶
-
EM_NS32K
= 97¶
-
EM_OPENRISC
= 92¶
-
EM_OPENRISC_OLD
= 13350¶
-
EM_OR32
= 33906¶
-
EM_PARISC
= 15¶
-
EM_PCP
= 55¶
-
EM_PDP10
= 64¶
-
EM_PDP11
= 65¶
-
EM_PDSP
= 63¶
-
EM_PJ
= 91¶
-
EM_PPC
= 20¶
-
EM_PPC64
= 21¶
-
EM_PRISM
= 82¶
-
EM_QDSP6
= 164¶
-
EM_R32C
= 162¶
-
EM_RCE
= 39¶
-
EM_RH32
= 38¶
-
EM_RS08
= 132¶
-
EM_RX
= 173¶
-
EM_S370
= 9¶
-
EM_S390
= 22¶
-
EM_S390_OLD
= 41872¶
-
EM_SCORE
= 135¶
-
EM_SCORE7
= 135¶
-
EM_SEP
= 108¶
-
EM_SE_C17
= 139¶
-
EM_SE_C33
= 107¶
-
EM_SH
= 42¶
-
EM_SLE9X
= 179¶
-
EM_SNP1K
= 99¶
-
EM_SPARC
= 2¶
-
EM_SPARC32PLUS
= 18¶
-
EM_SPARCV9
= 43¶
-
EM_SPU
= 23¶ RESERVED 24-35 Reserved for future use
-
EM_ST100
= 60¶
-
EM_ST19
= 74¶
-
EM_ST200
= 100¶
-
EM_ST7
= 68¶
-
EM_ST9PLUS
= 67¶
-
EM_STARCORE
= 58¶
-
EM_STM8
= 186¶
-
EM_STXP7X
= 166¶
-
EM_SVX
= 73¶
-
EM_TILE64
= 187¶
-
EM_TILEGX
= 191¶
-
EM_TILEPRO
= 188¶
-
EM_TINYJ
= 61¶
-
EM_TI_C2000
= 141¶
-
EM_TI_C5500
= 142¶
-
EM_TI_C6000
= 140¶
-
EM_TMM_GPP
= 96¶
-
EM_TPC
= 98¶
-
EM_TRICORE
= 44¶
-
EM_TRIMEDIA
= 163¶
-
EM_TSK3000
= 131¶
-
EM_UNICORE
= 110¶
-
EM_V800
= 36¶
-
EM_V850
= 87¶
-
EM_VAX
= 75¶
-
EM_VIDEOCORE
= 95¶
-
EM_VIDEOCORE3
= 137¶
-
EM_VPP500
= 17¶
-
EM_X86_64
= 62¶
-
EM_XC16X
= 18056¶
-
EM_XGATE
= 115¶
-
EM_XIMO16
= 170¶
-
EM_XSTORMY16
= 44357¶
-
EM_XTENSA
= 94¶
-
EM_XTENSA_OLD
= 43975¶
-
EM_ZSP
= 79¶
-
RESERVED
= 16¶
-
-
class
objutils.elf.defs.
ELFType
¶ Bases:
enum.IntEnum
An enumeration.
-
ET_CORE
= 4¶ Core file
-
ET_DYN
= 3¶ Shared object file
-
ET_EXEC
= 2¶ Executable file
-
ET_HIOS
= 65279¶ Operating system-specific
-
ET_HIPROC
= 65535¶ Processor-specific
-
ET_LOOS
= 65024¶ Operating system-specific
-
ET_LOPROC
= 65280¶ Processor-specific
-
ET_NONE
= 0¶ No file type
-
ET_NUM
= 5¶ Number of defined types
-
ET_REL
= 1¶ Relocatable file
-
-
class
objutils.elf.defs.
Elf32_Ehdr
(e_type, e_machine, e_version, e_entry, e_phoff, e_shoff, e_flags, e_ehsize, e_phentsize, e_phnum, e_shentsize, e_shnum, e_shstrndx)¶ Bases:
tuple
-
e_ehsize
¶ Alias for field number 7
-
e_entry
¶ Alias for field number 3
-
e_flags
¶ Alias for field number 6
-
e_machine
¶ Alias for field number 1
-
e_phentsize
¶ Alias for field number 8
-
e_phnum
¶ Alias for field number 9
-
e_phoff
¶ Alias for field number 4
-
e_shentsize
¶ Alias for field number 10
-
e_shnum
¶ Alias for field number 11
-
e_shoff
¶ Alias for field number 5
-
e_shstrndx
¶ Alias for field number 12
-
e_type
¶ Alias for field number 0
-
e_version
¶ Alias for field number 2
-
-
objutils.elf.defs.
Elf32_Sym
¶ alias of
objutils.elf.defs.Elf_Sym
-
objutils.elf.defs.
Elf64_Sym
¶ alias of
objutils.elf.defs.Elf_Sym
-
class
objutils.elf.defs.
Elf_Shdr
(sh_name, sh_type, sh_flags, sh_addr, sh_offset, sh_size, sh_link, sh_info, sh_addralign, sh_entsize)¶ Bases:
tuple
-
sh_addr
¶ Alias for field number 3
-
sh_addralign
¶ Alias for field number 8
-
sh_entsize
¶ Alias for field number 9
-
sh_flags
¶ Alias for field number 2
-
sh_info
¶ Alias for field number 7
-
sh_link
¶ Alias for field number 6
-
sh_name
¶ Alias for field number 0
-
sh_offset
¶ Alias for field number 4
-
sh_size
¶ Alias for field number 5
-
sh_type
¶ Alias for field number 1
-
-
class
objutils.elf.defs.
NoteSegmentDescriptorCore
¶ Bases:
enum.IntEnum
Legal values for note segment descriptor types for core files.
-
NT_386_IOPERM
= 513¶
-
NT_386_TLS
= 512¶
-
NT_ASRS
= 8¶
-
NT_AUXV
= 6¶
-
NT_FPREGSET
= 2¶
-
NT_GWINDOWS
= 7¶
-
NT_LWPSINFO
= 17¶
-
NT_LWPSTATUS
= 16¶
-
NT_PLATFORM
= 5¶
-
NT_PPC_SPE
= 257¶
-
NT_PPC_VMX
= 256¶
-
NT_PPC_VSX
= 258¶
-
NT_PRCRED
= 14¶
-
NT_PRFPXREG
= 20¶
-
NT_PRPSINFO
= 3¶
-
NT_PRSTATUS
= 1¶
-
NT_PRXFPREG
= 1189489535¶
-
NT_PRXREG
= 4¶
-
NT_PSINFO
= 13¶
-
NT_PSTATUS
= 10¶
-
NT_TASKSTRUCT
= 4¶
-
NT_UTSNAME
= 15¶
-
NT_X86_XSTATE
= 514¶
-
-
class
objutils.elf.defs.
NoteSegmentDescriptorObject
¶ Bases:
enum.IntEnum
Legal values for the note segment descriptor types for object files.
-
NT_VERSION
= 1¶
-
-
class
objutils.elf.defs.
SectionFlags
¶ Bases:
enum.IntEnum
An enumeration.
-
SHF_ALLOC
= 2¶
-
SHF_COMPRESSED
= 2048¶
-
SHF_EXCLUDE
= 2147483648¶
-
SHF_EXECINSTR
= 4¶
-
SHF_GROUP
= 512¶
-
SHF_INFO_LINK
= 64¶
-
SHF_LINK_ORDER
= 128¶
-
SHF_MASKOS
= 267386880¶
-
SHF_MASKPROC
= 4026531840¶
-
SHF_MERGE
= 16¶
-
SHF_ORDERED
= 1073741824¶
-
SHF_OS_NONCONFORMING
= 256¶
-
SHF_STRINGS
= 32¶
-
SHF_TLS
= 1024¶
-
SHF_WRITE
= 1¶
-
-
class
objutils.elf.defs.
SectionName
¶ Bases:
enum.IntEnum
An enumeration.
-
SHN_ABS
= 65521¶
-
SHN_AFTER
= 65281¶
-
SHN_BEFORE
= 65280¶
-
SHN_COMMON
= 65522¶
-
SHN_HIOS
= 65343¶
-
SHN_HIPROC
= 65311¶
-
SHN_HIRESERVE
= 65535¶
-
SHN_IA_64_ANSI_COMMON
= 65280¶
-
SHN_LOOS
= 65312¶
-
SHN_LOPROC
= 65280¶
-
SHN_LORESERVE
= 65280¶
-
SHN_UNDEF
= 0¶
-
SHN_XINDEX
= 65535¶
-
-
class
objutils.elf.defs.
SectionType
¶ Bases:
enum.IntEnum
-
SHT_ARM_ATTRIBUTES
= 1879048195¶
-
SHT_ARM_DEBUGOVERLAY
= 1879048196¶
-
SHT_ARM_EXIDX
= 1879048193¶
-
SHT_ARM_OVERLAYSECTION
= 1879048197¶
-
SHT_ARM_PREEMPTMAP
= 1879048194¶
-
SHT_CHECKSUM
= 1879048184¶
-
SHT_DYNAMIC
= 6¶
-
SHT_DYNSYM
= 11¶
-
SHT_FINI_ARRAY
= 15¶
-
SHT_GNU_ATTRIBUTES
= 1879048181¶
-
SHT_GNU_HASH
= 1879048182¶
-
SHT_GNU_INCREMENTAL_INPUTS
= 1879000832¶
-
SHT_GNU_LIBLIST
= 1879048183¶
-
SHT_GNU_verdef
= 1879048189¶
-
SHT_GNU_verneed
= 1879048190¶
-
SHT_GNU_versym
= 1879048191¶
-
SHT_GROUP
= 17¶
-
SHT_HASH
= 5¶
-
SHT_HIOS
= 1879048191¶
-
SHT_HIPROC
= 2147483647¶
-
SHT_HISUNW
= 1879048191¶
-
SHT_HIUSER
= 4294967295¶
-
SHT_INIT_ARRAY
= 14¶
-
SHT_LOOS
= 1610612736¶
-
SHT_LOPROC
= 1879048192¶
-
SHT_LOSUNW
= 1879048186¶
-
SHT_LOUSER
= 2147483648¶
-
SHT_NOBITS
= 8¶
-
SHT_NOTE
= 7¶
-
SHT_NULL
= 0¶
-
SHT_NUM
= 19¶
-
SHT_PREINIT_ARRAY
= 16¶
-
SHT_PROGBITS
= 1¶
-
SHT_REL
= 9¶
-
SHT_RELA
= 4¶
-
SHT_SHLIB
= 10¶
-
SHT_STRTAB
= 3¶
-
SHT_SUNW_COMDAT
= 1879048187¶
-
SHT_SUNW_move
= 1879048186¶
-
SHT_SUNW_syminfo
= 1879048188¶
-
SHT_SYMTAB
= 2¶
-
SHT_SYMTAB_SHNDX
= 18¶
-
-
class
objutils.elf.defs.
SymbolBinding
¶ Bases:
enum.IntEnum
An enumeration.
-
STB_GLOBAL
= 1¶
-
STB_GNU_UNIQUE
= 10¶
-
STB_HIPROC
= 15¶
-
STB_LOCAL
= 0¶
-
STB_LOPROC
= 13¶
-
STB_WEAK
= 2¶
-
-
class
objutils.elf.defs.
SymbolType
¶ Bases:
enum.IntEnum
An enumeration.
-
STT_COMMON
= 5¶
-
STT_FILE
= 4¶
-
STT_FUNC
= 2¶
-
STT_GNU_IFUNC
= 10¶
-
STT_HIPROC
= 15¶
-
STT_LOPROC
= 13¶
-
STT_NOTYPE
= 0¶
-
STT_OBJECT
= 1¶
-
STT_RELC
= 8¶
-
STT_SECTION
= 3¶
-
STT_SRELC
= 9¶
-
STT_TLS
= 6¶
-
-
class
objutils.elf.defs.
SymbolVisibility
¶ Bases:
enum.IntEnum
Symbol visibility specification encoded in the st_other field.
-
STV_DEFAULT
= 0¶
-
STV_HIDDEN
= 2¶
-
STV_INTERNAL
= 1¶
-
STV_PROTECTED
= 3¶
-
-
objutils.elf.defs.
special_section_name
(ndx)¶
objutils.elf.elfcons module¶
objutils.elf.relocs module¶
objutils.elf.testblocks module¶
Module contents¶
-
class
objutils.elf.
DebugInfo
(section, image)¶ Bases:
tuple
-
image
¶ Alias for field number 1
-
section
¶ Alias for field number 0
-
-
class
objutils.elf.
ElfFileStruct
(*args, **kws)¶ Bases:
construct.core.Struct
-
elf32Addr
()¶
-
setByteOrder
()¶
-
-
class
objutils.elf.
ElfParser
(filename)¶ Bases:
object
-
BasicHeader
= <Struct>¶
-
DATATYPES32
= {'Addr': (<FormatField>, <FormatField>), 'Half': (<FormatField>, <FormatField>), 'Off': (<FormatField>, <FormatField>), 'Sword': (<FormatField>, <FormatField>), 'Sxword': (None, None), 'Word': (<FormatField>, <FormatField>), 'Xword': (<FormatField>, <FormatField>)}¶
-
DATATYPES64
= {'Addr': (<FormatField>, <FormatField>), 'Half': (<FormatField>, <FormatField>), 'Off': (<FormatField>, <FormatField>), 'Sword': (<FormatField>, <FormatField>), 'Sxword': (<FormatField>, <FormatField>), 'Word': (<FormatField>, <FormatField>), 'Xword': (<FormatField>, <FormatField>)}¶
-
EI_NIDENT
= 16¶
-
arm_attributes
¶
-
comment
¶
-
create_section_to_segment_mapping
()¶
-
debug_sections
()¶
-
e_ehsize
¶
-
e_entry
¶
-
e_flags
¶
-
e_machine
¶
-
e_phentsize
¶
-
e_phnum
¶
-
e_phoff
¶
-
e_shentsize
¶
-
e_shnum
¶
-
e_shoff
¶
-
e_shstrndx
¶
-
e_type
¶
-
e_version
¶
-
ei_abiversion
¶
-
ei_class
¶
-
ei_data
¶
-
ei_osabi
¶
-
ei_version
¶
-
endianess
¶
-
get_basic_header_field
(name)¶
-
get_extended_header_field
(name)¶
-
get_string
(table_index, entry)¶
-
header_bytes
¶
-
notes
¶
-
query
¶
-
section_in_segment
(section_header, segment)¶
-
section_in_segment1
(section_header, segment, check_vma, strict)¶
-
section_in_segment_strict
(section_header, segment)¶
-
section_size
(section_header, segment)¶
-
segments
¶
-
tbss_special
(section_header, segment)¶
-
-
class
objutils.elf.
ListToBytesAdapter
(subcon)¶ Bases:
construct.core.Adapter
-
class
objutils.elf.
PrintContext
¶ Bases:
construct.core.Construct
-
class
objutils.elf.
SectionAPI
(parent)¶ Bases:
objutils.elf.DBAPI
-
fetch
(sections: str = None, name_pattern: str = None, order_by_address: bool = True)¶
-
get
(section_name: str)¶ Get a single section.
Parameters: section_name (str) –
-
-
class
objutils.elf.
SymbolAPI
(parent)¶ Bases:
objutils.elf.DBAPI
-
fetch
(sections: str = None, name_pattern: str = None, bindings: str = None, access: str = None, types_str: str = None, order_by_value: bool = True)¶
-
fetch_gcc_special_symbols
()¶ Note
This is a GCC specific feature and will not work with other compilers.
-
get
(symbol_name: str, section_name: str = None)¶ Get a single symbol.
Parameters: - symbol_name (str or list of strings.) – Symbol(s) to look for.
- section_name (str) – Consider only named section, else lookup all sections.
-
-
objutils.elf.
UTCTimeStamp
(name)¶
-
class
objutils.elf.
UTCTimeStampAdapter
(subcon)¶ Bases:
construct.core.Adapter
-
objutils.elf.
calculate_crypto_hash
(data)¶