예제 #1
0
    'SHN_HIPROC'             : 0xff1f,
    'SHN_LOOS'               : 0xff20,
    'SHN_HIOS'               : 0xff3f,
    'SHN_ABS'                : 0xfff1,
    'SHN_COMMON'             : 0xfff2,
    'SHN_XINDEX'             : 0xffff,
    'SHN_HIRESERVE'          : 0xffff,
    'SHN_MIPS_ACOMMON'       : 0xff00,
    'SHN_MIPS_TEXT'          : 0xff01,
    'SHN_MIPS_DATA'          : 0xff02,
    'SHN_MIPS_SCOMMON'       : 0xff03,
    'SHN_MIPS_SUNDEFINED'    : 0xff04,
    'SHN_PARISC_ANSI_COMMON' : 0xff00,
    'SHN_PARISC_HUGE_COMMON' : 0xff01,
    }
mirrorDict(shdr_index)

shdr_type = {
    'SHT_NULL'               : 0,
    'SHT_PROGBITS'           : 1,
    'SHT_SYMTAB'             : 2,
    'SHT_STRTAB'             : 3,
    'SHT_RELA'               : 4,
    'SHT_HASH'               : 5,
    'SHT_DYNAMIC'            : 6,
    'SHT_NOTE'               : 7,
    'SHT_NOBITS'             : 8,
    'SHT_REL'                : 9,
    'SHT_SHLIB'              : 10,
    'SHT_DYNSYM'             : 11,
    'SHT_INIT_ARRAY'         : 14,
예제 #2
0
    'NT_PRXREG'     : 4,
    'NT_TASKSTRUCT' : 4,
    'NT_PLATFORM'   : 5,
    'NT_AUXV'       : 6,
    'NT_GWINDOWS'   : 7,
    'NT_ASRS'       : 8,
    'NT_PSTATUS'    : 10,
    'NT_PSINFO'     : 13,
    'NT_PRCRED'     : 14,
    'NT_UTSNAME'    : 15,
    'NT_LWPSTATUS'  : 16,
    'NT_LWPSINFO'   : 17,
    'NT_PRFPXREG'   : 20,
    'NT_PRXFPREG'   : 0x46e62b7f,
    }
nhdr_core_type = mirrorDict(nhdr_core_type)

nhdr_type = {
    'NT_VERSION'    : 1,
    }
nhdr_type = mirrorDict(nhdr_type)


class NoteHeader( Header ):
    descriptions = [ 'n_namesz', 'n_descz', 'n_type' ]

    format = [ 'I', 'I', 'I' ]

    hr_values = {
        'n_type' : [ VALUE_FIXED, nhdr_type ],
        }
예제 #3
0
파일: symbol.py 프로젝트: sybtjp/python-elf
from elf.core.property import ARCH_32, ARCH_64, VALUE_FIXED, VALUE_BITWISE
from elf.core.header import Header
from elf.utils import mirrorDict

symtab_bind = {
    'STB_LOCAL'             : 0,
    'STB_GLOBAL'            : 1,
    'STB_WEAK'              : 2,
    'STB_NUM'               : 3,
    'STB_LOOS'              : 10,
    'STB_HIOS'              : 12,
    'STB_LOPROC'            : 13,
    'STB_HIPROC'            : 15,
    'STB_MIPS_SPLIT_COMMON' : 13,
    }
mirrorDict(symtab_bind)

symtab_type = {
    'STT_NOTYPE'           : 0,
    'STT_OBJECT'           : 1,
    'STT_FUNC'             : 2,
    'STT_SECTION'          : 3,
    'STT_FILE'             : 4,
    'STT_COMMON'           : 5,
    'STT_TLS'              : 6,
    'STT_NUM'              : 7,
    'STT_LOOS'             : 10,
    'STT_HIOS'             : 12,
    'STT_LOPROC'           : 13,
    'STT_HIPROC'           : 15,
    'STT_SPARC_REGISTER'   : 13,
예제 #4
0
    'PT_HP_CORE_MMF': (0x60000000 + 0x9),
    'PT_HP_PARALLEL': (0x60000000 + 0x10),
    'PT_HP_FASTBIND': (0x60000000 + 0x11),
    'PT_HP_OPT_ANNOT': (0x60000000 + 0x12),
    'PT_HP_HSL_ANNOT': (0x60000000 + 0x13),
    'PT_HP_STACK': (0x60000000 + 0x14),
    'PT_PARISC_ARCHEXT': 0x70000000,
    'PT_PARISC_UNWIND': 0x70000001,
    'PT_ARM_EXIDX': 0x70000001,
    'PT_IA_64_ARCHEXT': (0x70000000 + 0),
    'PT_IA_64_UNWIND': (0x70000000 + 1),
    'PT_IA_64_HP_OPT_ANOT': (0x60000000 + 0x12),
    'PT_IA_64_HP_HSL_ANOT': (0x60000000 + 0x13),
    'PT_IA_64_HP_STACK': (0x60000000 + 0x14),
}
phdr_type = mirrorDict(phdr_type)

phdr_flags = {
    'PF_X': (1 << 0),
    'PF_W': (1 << 1),
    'PF_R': (1 << 2),
    'PF_PAGEEXEC': (1 << 4),
    'PF_NOPAGEEXEC': (1 << 5),
    'PF_SEGMEXEC': (1 << 6),
    'PF_NOSEGMEXEC': (1 << 7),
    'PF_MPROTECT': (1 << 8),
    'PF_NOMPROTECT': (1 << 9),
    'PF_RANDEXEC': (1 << 10),
    'PF_NORANDEXEC': (1 << 11),
    'PF_EMUTRAMP': (1 << 12),
    'PF_NOEMUTRAMP': (1 << 13),
예제 #5
0
""" Eident and ElfHeader classes """

from elf.core.property import ARCH_32, ARCH_64, LITTLE_ENDIAN, BIG_ENDIAN, \
                                                VALUE_FIXED, VALUE_BITWISE
from elf.core.header import Header
from elf.utils import mirrorDict
from struct import calcsize

ehdr_magic = {
    'ELFMAG0' : 0x7f,
    'ELFMAG1' : 'E',
    'ELFMAG2' : 'L',
    'ELFMAG3' : 'F',
    }
ehdr_magic = mirrorDict(ehdr_magic)

ehdr_class = {
    'ELFCLASSNONE' : 0,
    'ELFCLASS32'   : 1,
    'ELFCLASS64'   : 2,
    'ELFCLASSNUM'  : 3,
    }
ehdr_class = mirrorDict(ehdr_class)

ehdr_encoding = {
    'ELFDATANONE' : 0,
    'ELFDATA2LSB' : 1,
    'ELFDATA2MSB' : 2,
    'ELFDATANUM'  : 3,
    }
예제 #6
0
"""
""" Eident and ElfHeader classes """

from elf.core.property import ARCH_32, ARCH_64, LITTLE_ENDIAN, BIG_ENDIAN, \
                                                VALUE_FIXED, VALUE_BITWISE
from elf.core.header import Header
from elf.utils import mirrorDict
from struct import calcsize

ehdr_magic = {
    'ELFMAG0': 0x7f,
    'ELFMAG1': 'E',
    'ELFMAG2': 'L',
    'ELFMAG3': 'F',
}
ehdr_magic = mirrorDict(ehdr_magic)

ehdr_class = {
    'ELFCLASSNONE': 0,
    'ELFCLASS32': 1,
    'ELFCLASS64': 2,
    'ELFCLASSNUM': 3,
}
ehdr_class = mirrorDict(ehdr_class)

ehdr_encoding = {
    'ELFDATANONE': 0,
    'ELFDATA2LSB': 1,
    'ELFDATA2MSB': 2,
    'ELFDATANUM': 3,
}
예제 #7
0
from elf.core.property import ARCH_32, ARCH_64, VALUE_FIXED, VALUE_BITWISE
from elf.core.header import Header
from elf.utils import mirrorDict

symtab_bind = {
    'STB_LOCAL': 0,
    'STB_GLOBAL': 1,
    'STB_WEAK': 2,
    'STB_NUM': 3,
    'STB_LOOS': 10,
    'STB_HIOS': 12,
    'STB_LOPROC': 13,
    'STB_HIPROC': 15,
    'STB_MIPS_SPLIT_COMMON': 13,
}
mirrorDict(symtab_bind)

symtab_type = {
    'STT_NOTYPE': 0,
    'STT_OBJECT': 1,
    'STT_FUNC': 2,
    'STT_SECTION': 3,
    'STT_FILE': 4,
    'STT_COMMON': 5,
    'STT_TLS': 6,
    'STT_NUM': 7,
    'STT_LOOS': 10,
    'STT_HIOS': 12,
    'STT_LOPROC': 13,
    'STT_HIPROC': 15,
    'STT_SPARC_REGISTER': 13,
예제 #8
0
    'PT_HP_CORE_MMF'       : (0x60000000 + 0x9),
    'PT_HP_PARALLEL'       : (0x60000000 + 0x10),
    'PT_HP_FASTBIND'       : (0x60000000 + 0x11),
    'PT_HP_OPT_ANNOT'      : (0x60000000 + 0x12),
    'PT_HP_HSL_ANNOT'      : (0x60000000 + 0x13),
    'PT_HP_STACK'          : (0x60000000 + 0x14),
    'PT_PARISC_ARCHEXT'    : 0x70000000,
    'PT_PARISC_UNWIND'     : 0x70000001,
    'PT_ARM_EXIDX'         : 0x70000001,
    'PT_IA_64_ARCHEXT'     : (0x70000000 + 0),
    'PT_IA_64_UNWIND'      : (0x70000000 + 1),
    'PT_IA_64_HP_OPT_ANOT' : (0x60000000 + 0x12),
    'PT_IA_64_HP_HSL_ANOT' : (0x60000000 + 0x13),
    'PT_IA_64_HP_STACK'    : (0x60000000 + 0x14),
    }
phdr_type = mirrorDict(phdr_type)

phdr_flags = {
    'PF_X'              : (1 << 0),
    'PF_W'              : (1 << 1),
    'PF_R'              : (1 << 2),
    'PF_PAGEEXEC'       : (1 << 4),
    'PF_NOPAGEEXEC'     : (1 << 5),
    'PF_SEGMEXEC'       : (1 << 6),
    'PF_NOSEGMEXEC'     : (1 << 7),
    'PF_MPROTECT'       : (1 << 8),
    'PF_NOMPROTECT'     : (1 << 9),
    'PF_RANDEXEC'       : (1 << 10),
    'PF_NORANDEXEC'     : (1 << 11),
    'PF_EMUTRAMP'       : (1 << 12),
    'PF_NOEMUTRAMP'     : (1 << 13),
예제 #9
0
파일: note.py 프로젝트: sybtjp/python-elf
    'NT_PRXREG'     : 4,
    'NT_TASKSTRUCT' : 4,
    'NT_PLATFORM'   : 5,
    'NT_AUXV'       : 6,
    'NT_GWINDOWS'   : 7,
    'NT_ASRS'       : 8,
    'NT_PSTATUS'    : 10,
    'NT_PSINFO'     : 13,
    'NT_PRCRED'     : 14,
    'NT_UTSNAME'    : 15,
    'NT_LWPSTATUS'  : 16,
    'NT_LWPSINFO'   : 17,
    'NT_PRFPXREG'   : 20,
    'NT_PRXFPREG'   : 0x46e62b7f,
    }
mirrorDict(nhdr_core_type)

nhdr_type = {
    'NT_VERSION'    : 1,
    }
mirrorDict(nhdr_type)


class NoteHeader( Header ):
    descriptions = [ 'n_namesz', 'n_descz', 'n_type' ]

    format = [ 'I', 'I', 'I' ]

    hr_values = {
        'n_type' : [ VALUE_FIXED, nhdr_type ],
        }
예제 #10
0
파일: dynamic.py 프로젝트: gipi/python-elf
    'DT_FINI_ARRAY': 26,
    'DT_INIT_ARRAYSZ': 27,
    'DT_FINI_ARRAYSZ': 28,
    'DT_RUNPATH': 29,
    'DT_FLAGS': 30,
    'DT_ENCODING': 32,
    'DT_PREINIT_ARRAY': 32,
    'DT_PREINIT_ARRAYSZ': 33,
    'DT_NUM': 34,
    'DT_LOOS': 0x6000000d,
    'DT_HIOS': 0x6ffff000,
    'DT_LOPROC': 0x70000000,
    'DT_HIPROC': 0x7fffffff,
    'DT_PROCNUM': 0x32,
}
dhdr_tag = mirrorDict(dhdr_tag)

dhdr_mips_tag = {
    'DT_MIPS_RLD_VERSION': 0x70000001,
    'DT_MIPS_TIME_STAMP': 0x70000002,
    'DT_MIPS_ICHECKSUM': 0x70000003,
    'DT_MIPS_IVERSION': 0x70000004,
    'DT_MIPS_FLAGS': 0x70000005,
    'DT_MIPS_BASE_ADDRESS': 0x70000006,
    'DT_MIPS_MSYM': 0x70000007,
    'DT_MIPS_CONFLICT': 0x70000008,
    'DT_MIPS_LIBLIST': 0x70000009,
    'DT_MIPS_LOCAL_GOTNO': 0x7000000a,
    'DT_MIPS_CONFLICTNO': 0x7000000b,
    'DT_MIPS_LIBLISTNO': 0x70000010,
    'DT_MIPS_SYMTABNO': 0x70000011,
예제 #11
0
파일: symbol.py 프로젝트: gipi/python-elf
from elf.core.property import ARCH_32, ARCH_64, VALUE_FIXED, VALUE_BITWISE
from elf.core.header import Header
from elf.utils import mirrorDict

symtab_bind = {
    'STB_LOCAL'             : 0,
    'STB_GLOBAL'            : 1,
    'STB_WEAK'              : 2,
    'STB_NUM'               : 3,
    'STB_LOOS'              : 10,
    'STB_HIOS'              : 12,
    'STB_LOPROC'            : 13,
    'STB_HIPROC'            : 15,
    'STB_MIPS_SPLIT_COMMON' : 13,
    }
symtab_bind = mirrorDict(symtab_bind)

symtab_type = {
    'STT_NOTYPE'           : 0,
    'STT_OBJECT'           : 1,
    'STT_FUNC'             : 2,
    'STT_SECTION'          : 3,
    'STT_FILE'             : 4,
    'STT_COMMON'           : 5,
    'STT_TLS'              : 6,
    'STT_NUM'              : 7,
    'STT_LOOS'             : 10,
    'STT_HIOS'             : 12,
    'STT_LOPROC'           : 13,
    'STT_HIPROC'           : 15,
    'STT_SPARC_REGISTER'   : 13,
예제 #12
0
    "DT_FINI_ARRAY": 26,
    "DT_INIT_ARRAYSZ": 27,
    "DT_FINI_ARRAYSZ": 28,
    "DT_RUNPATH": 29,
    "DT_FLAGS": 30,
    "DT_ENCODING": 32,
    "DT_PREINIT_ARRAY": 32,
    "DT_PREINIT_ARRAYSZ": 33,
    "DT_NUM": 34,
    "DT_LOOS": 0x6000000D,
    "DT_HIOS": 0x6FFFF000,
    "DT_LOPROC": 0x70000000,
    "DT_HIPROC": 0x7FFFFFFF,
    "DT_PROCNUM": 0x32,
}
mirrorDict(dhdr_tag)

dhdr_mips_tag = {
    "DT_MIPS_RLD_VERSION": 0x70000001,
    "DT_MIPS_TIME_STAMP": 0x70000002,
    "DT_MIPS_ICHECKSUM": 0x70000003,
    "DT_MIPS_IVERSION": 0x70000004,
    "DT_MIPS_FLAGS": 0x70000005,
    "DT_MIPS_BASE_ADDRESS": 0x70000006,
    "DT_MIPS_MSYM": 0x70000007,
    "DT_MIPS_CONFLICT": 0x70000008,
    "DT_MIPS_LIBLIST": 0x70000009,
    "DT_MIPS_LOCAL_GOTNO": 0x7000000A,
    "DT_MIPS_CONFLICTNO": 0x7000000B,
    "DT_MIPS_LIBLISTNO": 0x70000010,
    "DT_MIPS_SYMTABNO": 0x70000011,
예제 #13
0
    'DT_FINI_ARRAY'                 : 26,
    'DT_INIT_ARRAYSZ'               : 27,
    'DT_FINI_ARRAYSZ'               : 28,
    'DT_RUNPATH'                    : 29,
    'DT_FLAGS'                      : 30,
    'DT_ENCODING'                   : 32,
    'DT_PREINIT_ARRAY'              : 32,
    'DT_PREINIT_ARRAYSZ'            : 33,
    'DT_NUM'                        : 34,
    'DT_LOOS'                       : 0x6000000d,
    'DT_HIOS'                       : 0x6ffff000,
    'DT_LOPROC'                     : 0x70000000,
    'DT_HIPROC'                     : 0x7fffffff,
    'DT_PROCNUM'                    : 0x32,
    }
dhdr_tag = mirrorDict(dhdr_tag)

dhdr_mips_tag = {
    'DT_MIPS_RLD_VERSION'           : 0x70000001,
    'DT_MIPS_TIME_STAMP'            : 0x70000002,
    'DT_MIPS_ICHECKSUM'             : 0x70000003,
    'DT_MIPS_IVERSION'              : 0x70000004,
    'DT_MIPS_FLAGS'                 : 0x70000005,
    'DT_MIPS_BASE_ADDRESS'          : 0x70000006,
    'DT_MIPS_MSYM'                  : 0x70000007,
    'DT_MIPS_CONFLICT'              : 0x70000008,
    'DT_MIPS_LIBLIST'               : 0x70000009,
    'DT_MIPS_LOCAL_GOTNO'           : 0x7000000a,
    'DT_MIPS_CONFLICTNO'            : 0x7000000b,
    'DT_MIPS_LIBLISTNO'             : 0x70000010,
    'DT_MIPS_SYMTABNO'              : 0x70000011,
예제 #14
0
""" Eident and ElfHeader classes """

from elf.core.property import ARCH_32, ARCH_64, LITTLE_ENDIAN, BIG_ENDIAN, \
                                                VALUE_FIXED, VALUE_BITWISE
from elf.core.header import Header
from elf.utils import mirrorDict
from struct import calcsize

ehdr_magic = {
    'ELFMAG0' : 0x7f,
    'ELFMAG1' : 'E',
    'ELFMAG2' : 'L',
    'ELFMAG3' : 'F',
    }
mirrorDict(ehdr_magic)

ehdr_class = {
    'ELFCLASSNONE' : 0,
    'ELFCLASS32'   : 1,
    'ELFCLASS64'   : 2,
    'ELFCLASSNUM'  : 3,
    }
mirrorDict(ehdr_class)

ehdr_encoding = {
    'ELFDATANONE' : 0,
    'ELFDATA2LSB' : 1,
    'ELFDATA2MSB' : 2,
    'ELFDATANUM'  : 3,
    }
예제 #15
0
    'SHN_HIPROC'             : 0xff1f,
    'SHN_LOOS'               : 0xff20,
    'SHN_HIOS'               : 0xff3f,
    'SHN_ABS'                : 0xfff1,
    'SHN_COMMON'             : 0xfff2,
    'SHN_XINDEX'             : 0xffff,
    'SHN_HIRESERVE'          : 0xffff,
    'SHN_MIPS_ACOMMON'       : 0xff00,
    'SHN_MIPS_TEXT'          : 0xff01,
    'SHN_MIPS_DATA'          : 0xff02,
    'SHN_MIPS_SCOMMON'       : 0xff03,
    'SHN_MIPS_SUNDEFINED'    : 0xff04,
    'SHN_PARISC_ANSI_COMMON' : 0xff00,
    'SHN_PARISC_HUGE_COMMON' : 0xff01,
    }
shdr_index = mirrorDict(shdr_index)

shdr_type = {
    'SHT_NULL'               : 0,
    'SHT_PROGBITS'           : 1,
    'SHT_SYMTAB'             : 2,
    'SHT_STRTAB'             : 3,
    'SHT_RELA'               : 4,
    'SHT_HASH'               : 5,
    'SHT_DYNAMIC'            : 6,
    'SHT_NOTE'               : 7,
    'SHT_NOBITS'             : 8,
    'SHT_REL'                : 9,
    'SHT_SHLIB'              : 10,
    'SHT_DYNSYM'             : 11,
    'SHT_INIT_ARRAY'         : 14,
예제 #16
0
    'DT_FINI_ARRAY'                 : 26,
    'DT_INIT_ARRAYSZ'               : 27,
    'DT_FINI_ARRAYSZ'               : 28,
    'DT_RUNPATH'                    : 29,
    'DT_FLAGS'                      : 30,
    'DT_ENCODING'                   : 32,
    'DT_PREINIT_ARRAY'              : 32,
    'DT_PREINIT_ARRAYSZ'            : 33,
    'DT_NUM'                        : 34,
    'DT_LOOS'                       : 0x6000000d,
    'DT_HIOS'                       : 0x6ffff000,
    'DT_LOPROC'                     : 0x70000000,
    'DT_HIPROC'                     : 0x7fffffff,
    'DT_PROCNUM'                    : 0x32,
    }
mirrorDict(dhdr_tag)

dhdr_mips_tag = {
    'DT_MIPS_RLD_VERSION'           : 0x70000001,
    'DT_MIPS_TIME_STAMP'            : 0x70000002,
    'DT_MIPS_ICHECKSUM'             : 0x70000003,
    'DT_MIPS_IVERSION'              : 0x70000004,
    'DT_MIPS_FLAGS'                 : 0x70000005,
    'DT_MIPS_BASE_ADDRESS'          : 0x70000006,
    'DT_MIPS_MSYM'                  : 0x70000007,
    'DT_MIPS_CONFLICT'              : 0x70000008,
    'DT_MIPS_LIBLIST'               : 0x70000009,
    'DT_MIPS_LOCAL_GOTNO'           : 0x7000000a,
    'DT_MIPS_CONFLICTNO'            : 0x7000000b,
    'DT_MIPS_LIBLISTNO'             : 0x70000010,
    'DT_MIPS_SYMTABNO'              : 0x70000011,
예제 #17
0
    'PT_HP_CORE_MMF'       : (0x60000000 + 0x9),
    'PT_HP_PARALLEL'       : (0x60000000 + 0x10),
    'PT_HP_FASTBIND'       : (0x60000000 + 0x11),
    'PT_HP_OPT_ANNOT'      : (0x60000000 + 0x12),
    'PT_HP_HSL_ANNOT'      : (0x60000000 + 0x13),
    'PT_HP_STACK'          : (0x60000000 + 0x14),
    'PT_PARISC_ARCHEXT'    : 0x70000000,
    'PT_PARISC_UNWIND'     : 0x70000001,
    'PT_ARM_EXIDX'         : 0x70000001,
    'PT_IA_64_ARCHEXT'     : (0x70000000 + 0),
    'PT_IA_64_UNWIND'      : (0x70000000 + 1),
    'PT_IA_64_HP_OPT_ANOT' : (0x60000000 + 0x12),
    'PT_IA_64_HP_HSL_ANOT' : (0x60000000 + 0x13),
    'PT_IA_64_HP_STACK'    : (0x60000000 + 0x14),
    }
mirrorDict(phdr_type)

phdr_flags = {
    'PF_X'              : (1 << 0),
    'PF_W'              : (1 << 1),
    'PF_R'              : (1 << 2),
    'PF_PAGEEXEC'       : (1 << 4),
    'PF_NOPAGEEXEC'     : (1 << 5),
    'PF_SEGMEXEC'       : (1 << 6),
    'PF_NOSEGMEXEC'     : (1 << 7),
    'PF_MPROTECT'       : (1 << 8),
    'PF_NOMPROTECT'     : (1 << 9),
    'PF_RANDEXEC'       : (1 << 10),
    'PF_NORANDEXEC'     : (1 << 11),
    'PF_EMUTRAMP'       : (1 << 12),
    'PF_NOEMUTRAMP'     : (1 << 13),
예제 #18
0
파일: note.py 프로젝트: gipi/python-elf
    'NT_PRXREG': 4,
    'NT_TASKSTRUCT': 4,
    'NT_PLATFORM': 5,
    'NT_AUXV': 6,
    'NT_GWINDOWS': 7,
    'NT_ASRS': 8,
    'NT_PSTATUS': 10,
    'NT_PSINFO': 13,
    'NT_PRCRED': 14,
    'NT_UTSNAME': 15,
    'NT_LWPSTATUS': 16,
    'NT_LWPSINFO': 17,
    'NT_PRFPXREG': 20,
    'NT_PRXFPREG': 0x46e62b7f,
}
nhdr_core_type = mirrorDict(nhdr_core_type)

nhdr_type = {
    'NT_VERSION': 1,
}
nhdr_type = mirrorDict(nhdr_type)


class NoteHeader(Header):
    descriptions = ['n_namesz', 'n_descz', 'n_type']

    format = ['I', 'I', 'I']

    hr_values = {
        'n_type': [VALUE_FIXED, nhdr_type],
    }
예제 #19
0
    'NT_PRXREG': 4,
    'NT_TASKSTRUCT': 4,
    'NT_PLATFORM': 5,
    'NT_AUXV': 6,
    'NT_GWINDOWS': 7,
    'NT_ASRS': 8,
    'NT_PSTATUS': 10,
    'NT_PSINFO': 13,
    'NT_PRCRED': 14,
    'NT_UTSNAME': 15,
    'NT_LWPSTATUS': 16,
    'NT_LWPSINFO': 17,
    'NT_PRFPXREG': 20,
    'NT_PRXFPREG': 0x46e62b7f,
}
mirrorDict(nhdr_core_type)

nhdr_type = {
    'NT_VERSION': 1,
}
mirrorDict(nhdr_type)


class NoteHeader(Header):
    descriptions = ['n_namesz', 'n_descz', 'n_type']

    format = ['I', 'I', 'I']

    hr_values = {
        'n_type': [VALUE_FIXED, nhdr_type],
    }
예제 #20
0
    'SHN_HIPROC': 0xff1f,
    'SHN_LOOS': 0xff20,
    'SHN_HIOS': 0xff3f,
    'SHN_ABS': 0xfff1,
    'SHN_COMMON': 0xfff2,
    'SHN_XINDEX': 0xffff,
    'SHN_HIRESERVE': 0xffff,
    'SHN_MIPS_ACOMMON': 0xff00,
    'SHN_MIPS_TEXT': 0xff01,
    'SHN_MIPS_DATA': 0xff02,
    'SHN_MIPS_SCOMMON': 0xff03,
    'SHN_MIPS_SUNDEFINED': 0xff04,
    'SHN_PARISC_ANSI_COMMON': 0xff00,
    'SHN_PARISC_HUGE_COMMON': 0xff01,
}
shdr_index = mirrorDict(shdr_index)

shdr_type = {
    'SHT_NULL': 0,
    'SHT_PROGBITS': 1,
    'SHT_SYMTAB': 2,
    'SHT_STRTAB': 3,
    'SHT_RELA': 4,
    'SHT_HASH': 5,
    'SHT_DYNAMIC': 6,
    'SHT_NOTE': 7,
    'SHT_NOBITS': 8,
    'SHT_REL': 9,
    'SHT_SHLIB': 10,
    'SHT_DYNSYM': 11,
    'SHT_INIT_ARRAY': 14,
예제 #21
0
    'SHN_HIPROC': 0xff1f,
    'SHN_LOOS': 0xff20,
    'SHN_HIOS': 0xff3f,
    'SHN_ABS': 0xfff1,
    'SHN_COMMON': 0xfff2,
    'SHN_XINDEX': 0xffff,
    'SHN_HIRESERVE': 0xffff,
    'SHN_MIPS_ACOMMON': 0xff00,
    'SHN_MIPS_TEXT': 0xff01,
    'SHN_MIPS_DATA': 0xff02,
    'SHN_MIPS_SCOMMON': 0xff03,
    'SHN_MIPS_SUNDEFINED': 0xff04,
    'SHN_PARISC_ANSI_COMMON': 0xff00,
    'SHN_PARISC_HUGE_COMMON': 0xff01,
}
mirrorDict(shdr_index)

shdr_type = {
    'SHT_NULL': 0,
    'SHT_PROGBITS': 1,
    'SHT_SYMTAB': 2,
    'SHT_STRTAB': 3,
    'SHT_RELA': 4,
    'SHT_HASH': 5,
    'SHT_DYNAMIC': 6,
    'SHT_NOTE': 7,
    'SHT_NOBITS': 8,
    'SHT_REL': 9,
    'SHT_SHLIB': 10,
    'SHT_DYNSYM': 11,
    'SHT_INIT_ARRAY': 14,
예제 #22
0
    'PT_HP_CORE_MMF': (0x60000000 + 0x9),
    'PT_HP_PARALLEL': (0x60000000 + 0x10),
    'PT_HP_FASTBIND': (0x60000000 + 0x11),
    'PT_HP_OPT_ANNOT': (0x60000000 + 0x12),
    'PT_HP_HSL_ANNOT': (0x60000000 + 0x13),
    'PT_HP_STACK': (0x60000000 + 0x14),
    'PT_PARISC_ARCHEXT': 0x70000000,
    'PT_PARISC_UNWIND': 0x70000001,
    'PT_ARM_EXIDX': 0x70000001,
    'PT_IA_64_ARCHEXT': (0x70000000 + 0),
    'PT_IA_64_UNWIND': (0x70000000 + 1),
    'PT_IA_64_HP_OPT_ANOT': (0x60000000 + 0x12),
    'PT_IA_64_HP_HSL_ANOT': (0x60000000 + 0x13),
    'PT_IA_64_HP_STACK': (0x60000000 + 0x14),
}
mirrorDict(phdr_type)

phdr_flags = {
    'PF_X': (1 << 0),
    'PF_W': (1 << 1),
    'PF_R': (1 << 2),
    'PF_PAGEEXEC': (1 << 4),
    'PF_NOPAGEEXEC': (1 << 5),
    'PF_SEGMEXEC': (1 << 6),
    'PF_NOSEGMEXEC': (1 << 7),
    'PF_MPROTECT': (1 << 8),
    'PF_NOMPROTECT': (1 << 9),
    'PF_RANDEXEC': (1 << 10),
    'PF_NORANDEXEC': (1 << 11),
    'PF_EMUTRAMP': (1 << 12),
    'PF_NOEMUTRAMP': (1 << 13),