How to use the archinfo.arch.Register function in archinfo

To help you get started, we’ve selected a few archinfo examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github angr / archinfo / archinfo / arch_x86.py View on Github external
general_purpose=True, argument=True, linux_entry_value=0),
        Register(name='esi', size=4, subregisters=[('si', 0, 2),
                                                   ('sil', 0, 1),
                                                   ('sih', 1, 1)],
                 general_purpose=True, argument=True),
        Register(name='edi', size=4, subregisters=[('di', 0, 2),
                                                   ('dil', 0, 1),
                                                   ('dih', 1, 1)],
                 general_purpose=True, argument=True),
        Register(name='cc_op', size=4, default_value=(0, False, None)),
        Register(name='cc_dep1', size=4),
        Register(name='cc_dep2', size=4),
        Register(name='cc_ndep', size=4),
        Register(name='d', size=4, alias_names=('dflag',),
                 default_value=(1, False, None)),
        Register(name='id', size=4, alias_names=('idflag',),
                 default_value=(1, False, None)),
        Register(name='ac', size=4, alias_names=('acflag',),
                 default_value=(0, False, None)),
        Register(name='eip', size=4, alias_names=('ip', 'pc')),
        Register(name='fpreg', size=64, subregisters=[('mm0', 0, 8),
                                                      ('mm1', 8, 8),
                                                      ('mm2', 16, 8),
                                                      ('mm3', 24, 8),
                                                      ('mm4', 32, 8),
                                                      ('mm5', 40, 8),
                                                      ('mm6', 48, 8),
                                                      ('mm7', 56, 8)],
                 alias_names=('fpu_regs',), floating_point=True),
        Register(name='fptag', size=8, alias_names=('fpu_tags',),
                 floating_point=True, default_value=(0, False, None)),
        Register(name='fpround', size=4, floating_point=True,
github angr / archinfo / archinfo / arch_ppc32.py View on Github external
general_purpose=True, default_value=(Arch.initial_sp, True, 'global')),
        Register(name='gpr2', size=4, alias_names=('r2',),
                 general_purpose=True),
        Register(name='gpr3', size=4, alias_names=('r3',),
                 general_purpose=True, argument=True, linux_entry_value='argc'),
        Register(name='gpr4', size=4, alias_names=('r4',),
                 general_purpose=True, argument=True, linux_entry_value='argv'),
        Register(name='gpr5', size=4, alias_names=('r5',),
                 general_purpose=True, argument=True, linux_entry_value='envp'),
        Register(name='gpr6', size=4, alias_names=('r6',),
                 general_purpose=True, argument=True, linux_entry_value='auxv'),
        Register(name='gpr7', size=4, alias_names=('r7',),
                 general_purpose=True, argument=True, linux_entry_value='ld_destructor'),
        Register(name='gpr8', size=4, alias_names=('r8',),
                 general_purpose=True, argument=True),
        Register(name='gpr9', size=4, alias_names=('r9',),
                 general_purpose=True, argument=True),
        Register(name='gpr10', size=4, alias_names=('r10',),
                 general_purpose=True, argument=True),
        Register(name='gpr11', size=4, alias_names=('r11',),
                 general_purpose=True),
        Register(name='gpr12', size=4, alias_names=('r12',),
                 general_purpose=True),
        Register(name='gpr13', size=4, alias_names=('r13',),
                 general_purpose=True),
        Register(name='gpr14', size=4, alias_names=('r14',),
                 general_purpose=True),
        Register(name='gpr15', size=4, alias_names=('r15',),
                 general_purpose=True),
        Register(name='gpr16', size=4, alias_names=('r16',),
                 general_purpose=True),
        Register(name='gpr17', size=4, alias_names=('r17',),
github angr / archinfo / archinfo / arch_ppc64.py View on Github external
general_purpose=True, linux_entry_value='entry'),
        Register(name='gpr13', size=8, alias_names=('r13',),
                 general_purpose=True),
        Register(name='gpr14', size=8, alias_names=('r14',),
                 general_purpose=True),
        Register(name='gpr15', size=8, alias_names=('r15',),
                 general_purpose=True),
        Register(name='gpr16', size=8, alias_names=('r16',),
                 general_purpose=True),
        Register(name='gpr17', size=8, alias_names=('r17',),
                 general_purpose=True),
        Register(name='gpr18', size=8, alias_names=('r18',),
                 general_purpose=True),
        Register(name='gpr19', size=8, alias_names=('r19',),
                 general_purpose=True),
        Register(name='gpr20', size=8, alias_names=('r20',),
                 general_purpose=True),
        Register(name='gpr21', size=8, alias_names=('r21',),
                 general_purpose=True),
        Register(name='gpr22', size=8, alias_names=('r22',),
                 general_purpose=True),
        Register(name='gpr23', size=8, alias_names=('r23',),
                 general_purpose=True),
        Register(name='gpr24', size=8, alias_names=('r24',),
                 general_purpose=True),
        Register(name='gpr25', size=8, alias_names=('r25',),
                 general_purpose=True, persistent=True),
        Register(name='gpr26', size=8, alias_names=('r26',),
                 general_purpose=True),
        Register(name='gpr27', size=8, alias_names=('r27',),
                 general_purpose=True),
        Register(name='gpr28', size=8, alias_names=('r28',),
github angr / archinfo / archinfo / arch_mips64.py View on Github external
uc_arch = _unicorn.UC_ARCH_MIPS if _unicorn else None
    uc_mode = (_unicorn.UC_MODE_64 + _unicorn.UC_MODE_LITTLE_ENDIAN) if _unicorn else None
    uc_const = _unicorn.mips_const if _unicorn else None
    uc_prefix = "UC_MIPS_" if _unicorn else None
    function_prologs = set((
        # TODO
    ))
    function_epilogs = set((
        # TODO
    ))

    ret_instruction = b"\x08\x00\xE0\x03" + b"\x25\x08\x20\x00"
    nop_instruction = b"\x00\x00\x00\x00"
    instruction_alignment = 4
    register_list = [
        Register(name='zero', size=8, alias_names=('r0',)),
        Register(name='at', size=8, alias_names=('r1',),
                 general_purpose=True),
        Register(name='v0', size=8, alias_names=('r2',),
                 general_purpose=True, linux_entry_value='ld_destructor'),
        Register(name='v1', size=8, alias_names=('r3',),
                 general_purpose=True),
        Register(name='a0', size=8, alias_names=('r4',),
                 general_purpose=True, argument=True),
        Register(name='a1', size=8, alias_names=('r5',),
                 general_purpose=True, argument=True),
        Register(name='a2', size=8, alias_names=('r6',),
                 general_purpose=True, argument=True),
        Register(name='a3', size=8, alias_names=('r7',),
                 general_purpose=True, argument=True),
        Register(name='t0', size=8, alias_names=('r8',),
                 general_purpose=True),
github angr / archinfo / archinfo / arch_ppc64.py View on Github external
alias_names=('v14',), floating_point=True),
        Register(name='vsr15', size=16, subregisters=[('fpr15', 0, 8)],
                 alias_names=('v15',), floating_point=True),
        Register(name='vsr16', size=16, subregisters=[('fpr16', 0, 8)],
                 alias_names=('v16',), floating_point=True),
        Register(name='vsr17', size=16, subregisters=[('fpr17', 0, 8)],
                 alias_names=('v17',), floating_point=True),
        Register(name='vsr18', size=16, subregisters=[('fpr18', 0, 8)],
                 alias_names=('v18',), floating_point=True),
        Register(name='vsr19', size=16, subregisters=[('fpr19', 0, 8)],
                 alias_names=('v19',), floating_point=True),
        Register(name='vsr20', size=16, subregisters=[('fpr20', 0, 8)],
                 alias_names=('v20',), floating_point=True),
        Register(name='vsr21', size=16, subregisters=[('fpr21', 0, 8)],
                 alias_names=('v21',), floating_point=True),
        Register(name='vsr22', size=16, subregisters=[('fpr22', 0, 8)],
                 alias_names=('v22',), floating_point=True),
        Register(name='vsr23', size=16, subregisters=[('fpr23', 0, 8)],
                 alias_names=('v23',), floating_point=True),
        Register(name='vsr24', size=16, subregisters=[('fpr24', 0, 8)],
                 alias_names=('v24',), floating_point=True),
        Register(name='vsr25', size=16, subregisters=[('fpr25', 0, 8)],
                 alias_names=('v25',), floating_point=True),
        Register(name='vsr26', size=16, subregisters=[('fpr26', 0, 8)],
                 alias_names=('v26',), floating_point=True),
        Register(name='vsr27', size=16, subregisters=[('fpr27', 0, 8)],
                 alias_names=('v27',), floating_point=True),
        Register(name='vsr28', size=16, subregisters=[('fpr28', 0, 8)],
                 alias_names=('v28',), floating_point=True),
        Register(name='vsr29', size=16, subregisters=[('fpr29', 0, 8)],
                 alias_names=('v29',), floating_point=True),
        Register(name='vsr30', size=16, subregisters=[('fpr30', 0, 8)],
github angr / archinfo / archinfo / arch_x86.py View on Github external
Register(name='fptag', size=8, alias_names=('fpu_tags',),
                 floating_point=True, default_value=(0, False, None)),
        Register(name='fpround', size=4, floating_point=True,
                 default_value=(0, False, None)),
        Register(name='fc3210', size=4, floating_point=True),
        Register(name='ftop', size=4, floating_point=True,
                 default_value=(0, False, None)),
        Register(name='sseround', size=4, vector=True,
                 default_value=(0, False, None)),
        Register(name='xmm0', size=16, vector=True),
        Register(name='xmm1', size=16, vector=True),
        Register(name='xmm2', size=16, vector=True),
        Register(name='xmm3', size=16, vector=True),
        Register(name='xmm4', size=16, vector=True),
        Register(name='xmm5', size=16, vector=True),
        Register(name='xmm6', size=16, vector=True),
        Register(name='xmm7', size=16, vector=True),
        Register(name='cs', size=2),
        Register(name='ds', size=2),
        Register(name='es', size=2),
        Register(name='fs', size=2, default_value=(0, False, None)),
        Register(name='gs', size=2, default_value=(0, False, None)),
        Register(name='ss', size=2),
        Register(name='ldt', size=8, default_value=(0, False, None)),
        Register(name='gdt', size=8, default_value=(0, False, None)),
        Register(name='emnote', size=4),
        Register(name='cmstart', size=4),
        Register(name='cmlen', size=4),
        Register(name='nraddr', size=4),
        Register(name='sc_class', size=4),
        Register(name='ip_at_syscall', size=4),
    ]
github angr / archinfo / archinfo / arch_amd64.py View on Github external
('ch', 1, 1)],
                 general_purpose=True, argument=True),
        Register(name='rdx', size=8, subregisters=[('edx', 0, 4),
                                                   ('dx', 0, 2),
                                                   ('dl', 0, 1),
                                                   ('dh', 1, 1)],
                 general_purpose=True, argument=True, linux_entry_value='ld_destructor'),
        Register(name='rbx', size=8, subregisters=[('ebx', 0, 4),
                                                   ('bx', 0, 2),
                                                   ('bl', 0, 1),
                                                   ('bh', 1, 1)],
                 general_purpose=True,
                 linux_entry_value=0),
        Register(name='rsp', size=8, subregisters=[('esp', 0, 4)], alias_names=('sp',),
                 general_purpose=True, default_value=(initial_sp, True, 'global')),
        Register(name='rbp', size=8, subregisters=[('ebp', 0, 4), ('bpl', 0, 1), ('bph', 1, 1)], alias_names=('bp',),
                 general_purpose=True, linux_entry_value=0),
        Register(name='rsi', size=8, subregisters=[('esi', 0, 4),
                                                   ('si', 0, 2),
                                                   ('sil', 0, 1),
                                                   ('sih', 1, 1)],
                 general_purpose=True, argument=True),
        Register(name='rdi', size=8, subregisters=[('edi', 0, 4),
                                                   ('di', 0, 2),
                                                   ('dil', 0, 1),
                                                   ('dih', 1, 1)],
                 general_purpose=True, argument=True),
        Register(name='r8', size=8, subregisters=[('r8d', 0, 4),
                                                  ('r8w', 0, 2),
                                                  ('r8b', 0, 1)],
                 general_purpose=True, argument=True),
        Register(name='r9', size=8, subregisters=[('r9d', 0, 4),
github angr / archinfo / archinfo / arch_x86.py View on Github external
default_value=(1, False, None), concrete=False),
        Register(name='ac', size=4, alias_names=('acflag',),
                 default_value=(0, False, None), concrete=False),
        Register(name='eip', size=4, alias_names=('ip', 'pc')),
        Register(name='fpreg', size=64, subregisters=[('mm0', 0, 8),
                                                      ('mm1', 8, 8),
                                                      ('mm2', 16, 8),
                                                      ('mm3', 24, 8),
                                                      ('mm4', 32, 8),
                                                      ('mm5', 40, 8),
                                                      ('mm6', 48, 8),
                                                      ('mm7', 56, 8)],
                 alias_names=('fpu_regs',), floating_point=True, concrete=False),
        Register(name='fptag', size=8, alias_names=('fpu_tags',),
                 floating_point=True, default_value=(0, False, None)),
        Register(name='fpround', size=4, floating_point=True,
                 default_value=(0, False, None)),
        Register(name='fc3210', size=4, floating_point=True),
        Register(name='ftop', size=4, floating_point=True,
                 default_value=(0, False, None)),
        Register(name='sseround', size=4, vector=True,
                 default_value=(0, False, None)),
        Register(name='xmm0', size=16, vector=True),
        Register(name='xmm1', size=16, vector=True),
        Register(name='xmm2', size=16, vector=True),
        Register(name='xmm3', size=16, vector=True),
        Register(name='xmm4', size=16, vector=True),
        Register(name='xmm5', size=16, vector=True),
        Register(name='xmm6', size=16, vector=True),
        Register(name='xmm7', size=16, vector=True),
        Register(name='cs', size=2),
        Register(name='ds', size=2),
github angr / archinfo / archinfo / arch_amd64.py View on Github external
general_purpose=True,
                 linux_entry_value=0),
        Register(name='r14', size=8, subregisters=[('r14d', 0, 4),
                                                   ('r14w', 0, 2),
                                                   ('r14b', 0, 1)],
                general_purpose=True,
                 linux_entry_value=0),
        Register(name='r15', size=8, subregisters=[('r15d', 0, 4),
                                                   ('r15w', 0, 2),
                                                   ('r15b', 0, 1)],
                general_purpose=True,
                 linux_entry_value=0),
        Register(name='cc_op', size=8, default_value=(0, False, None), concrete=False, artificial=True),
        Register(name='cc_dep1', size=8, concrete=False, artificial=True),
        Register(name='cc_dep2', size=8, concrete=False, artificial=True),
        Register(name='cc_ndep', size=8, concrete=False, artificial=True, linux_entry_value=0),
        Register(name='d', size=8, alias_names=('dflag',),
                 default_value=(1, False, None), concrete=False),
        Register(name='rip', size=8, alias_names=('ip', 'pc'),
                 general_purpose=True),
        Register(name='ac', size=8, alias_names=('acflag',),concrete=False),
        Register(name='id', size=8, alias_names=('idflag',)),
        Register(name='fs', size=8, alias_names=('fs_const',),
                 default_value=(0x9000000000000000, True, 'global'),concrete=False),
        Register(name='sseround', size=8, vector=True,
                 default_value=(0, False, None)),
        Register(name='cr0', size=8),
        Register(name='cr2', size=8),
        Register(name='cr3', size=8),
        Register(name='cr4', size=8),
        Register(name='cr8', size=8),
        Register(name='ymm0', size=32, subregisters=[('xmm0', 0, 16),
github angr / archinfo / archinfo / arch_amd64.py View on Github external
('mm3', 24, 8),
                                                      ('mm4', 32, 8),
                                                      ('mm5', 40, 8),
                                                      ('mm6', 48, 8),
                                                      ('mm7', 56, 8)],
                 alias_names=('fpu_regs',), floating_point=True),
        Register(name='fptag', size=8, alias_names=('fpu_tags',),
                 floating_point=True, default_value=(0, False, None)),
        Register(name='fpround', size=8, floating_point=True, default_value=(0, False, None)),
        Register(name='fc3210', size=8, floating_point=True),
        Register(name='emnote', size=4),
        Register(name='cmstart', size=8),
        Register(name='cmlen', size=8),
        Register(name='nraddr', size=8),
        Register(name='gs', size=8, alias_names=('gs_const',), concrete=False),
        Register(name='ip_at_syscall', size=8, concrete=False, artificial=True),
    ]

    symbol_type_translation = {
        10: 'STT_GNU_IFUNC',
        'STT_LOOS': 'STT_GNU_IFUNC'
    }
    got_section_name = '.got.plt'
    ld_linux_name = 'ld-linux-x86-64.so.2'
    elf_tls = TLSArchInfo(2, 704, [16], [8], [0], 0, 0)


register_arch([r'.*amd64|.*x64|.*x86_64|.*metapc'], 64, Endness.LE, ArchAMD64)