Functions | |
def | reg2exprid |
def | parse_deref_reg |
def | parse_deref_int |
def | parse_deref_regint |
def | parse_deref_regreg |
def | parse_deref_regregint |
def | parse_deref_reg_intmreg |
def | parse_deref_reg_intmreg_int |
def | parse_deref_intmreg |
def | parse_deref_intmregint |
def | getreg |
def | parse_deref_ptr |
def | parse_deref_segmoff |
def | ast_id2expr |
def | ast_int2expr |
def | parse_deref_mem |
def | opmode_prefix |
def | admode_prefix |
def | v_opmode_info |
def | v_opmode |
def | v_admode_info |
def | v_admode |
def | offsize |
def | get_prefix |
def | getmodrm |
def | setmodrm |
def | sib |
def | gen_modrm_form |
def | exprfindmod |
def | test_addr_size |
def | parse_mem |
def | expr2modrm |
def | modrm2expr |
def | sib_cond |
def | rmmod |
def | addop |
def | print_size |
MMX/SSE/AVX operations Categories are the same than here: https://software.intel.com/sites/landingpage/IntrinsicsGuide/. More... | |
Variables | |
tuple | log = logging.getLogger("x86_arch") |
tuple | console_handler = logging.StreamHandler() |
list | conditional_branch |
list | unconditional_branch = ['JMP', 'JMPF'] |
string | f_isad = "AD" |
string | f_s08 = "S08" |
string | f_u08 = "U08" |
string | f_s16 = "S16" |
string | f_u16 = "U16" |
string | f_s32 = "S32" |
string | f_u32 = "U32" |
string | f_s64 = "S64" |
string | f_u64 = "U64" |
string | f_imm = 'IMM' |
dictionary | f_imm2size |
dictionary | size2gpregs |
dictionary | replace_regs64 |
dictionary | replace_regs32 |
dictionary | replace_regs16 |
dictionary | replace_regs |
tuple | PLUS = Suppress("+") |
tuple | MULT = Suppress("*") |
tuple | COLON = Suppress(":") |
tuple | LBRACK = Suppress("[") |
tuple | RBRACK = Suppress("]") |
tuple | dbreg = Group(gpregs16.parser | gpregs32.parser | gpregs64.parser) |
tuple | gpreg |
tuple | my_var_parser = parse_ast(ast_id2expr, ast_int2expr) |
int_or_expr = base_expr | |
tuple | deref_mem_ad = Group(LBRACK + dbreg + RBRACK) |
tuple | deref_ptr |
tuple | PTR = Suppress('PTR') |
tuple | BYTE = Literal('BYTE') |
tuple | WORD = Literal('WORD') |
tuple | DWORD = Literal('DWORD') |
tuple | QWORD = Literal('QWORD') |
tuple | TBYTE = Literal('TBYTE') |
tuple | XMMWORD = Literal('XMMWORD') |
dictionary | MEMPREFIX2SIZE |
tuple | SIZE2MEMPREFIX = dict((x[1], x[0]) for x in MEMPREFIX2SIZE.items()) |
tuple | mem_size = Group(BYTE | DWORD | QWORD | WORD | TBYTE | XMMWORD) |
tuple | deref_mem |
tuple | rmarg |
tuple | cl_or_imm = Group(r08_ecx.parser) |
dictionary | invmode = {16: 32, 32: 16} |
list | repeat_mn |
dictionary | segm2enc = {CS: 1, SS: 2, DS: 3, ES: 4, FS: 5, GS: 6} |
tuple | enc2segm = dict([(x[1], x[0]) for x in segm2enc.items()]) |
list | db_afs_64 = [] |
list | sib_64_s08_ebp = [] |
dictionary | SIZE2XMMREG |
tuple | d_rex_p = bs(l=0, cls=(bs_fbit,), fname="rex_p") |
tuple | d_rex_w = bs(l=0, cls=(bs_fbit,), fname="rex_w") |
tuple | d_rex_r = bs(l=0, cls=(bs_fbit,), fname="rex_r") |
tuple | d_rex_x = bs(l=0, cls=(bs_fbit,), fname="rex_x") |
tuple | d_rex_b = bs(l=0, cls=(bs_fbit,), fname="rex_b") |
tuple | d_g1 = bs(l=0, cls=(bs_fbit,), fname="g1") |
tuple | d_g2 = bs(l=0, cls=(bs_fbit,), fname="g2") |
tuple | d_cl1 = bs(l=1, cls=(bs_cl1,), fname="cl1") |
tuple | w8 = bs(l=1, fname="w8") |
tuple | se = bs(l=1, fname="se") |
tuple | sx = bs(l=0, fname="sx") |
tuple | sxd = bs(l=0, fname="sx") |
tuple | xmmreg = bs(l=0, fname="xmmreg") |
tuple | mmreg = bs(l=0, fname="mmreg") |
tuple | pref_f2 = bs(l=0, fname="prefixed", default="\xf2") |
tuple | pref_f3 = bs(l=0, fname="prefixed", default="\xf3") |
tuple | pref_66 = bs(l=0, fname="prefixed", default="\x66") |
tuple | no_xmm_pref = bs(l=0, fname="no_xmm_pref") |
tuple | sib_scale = bs(l=2, cls=(bs_cond_scale,), fname = "sib_scale") |
tuple | sib_index = bs(l=3, cls=(bs_cond_index,), fname = "sib_index") |
tuple | sib_base = bs(l=3, cls=(bs_cond_index,), fname = "sib_base") |
tuple | disp = bs(l=0, cls=(bs_cond_disp,), fname = "disp") |
tuple | s08 = bs(l=8, cls=(bs_s08, )) |
tuple | u08 = bs(l=8, cls=(x86_08, m_arg)) |
tuple | u07 = bs(l=7, cls=(x86_08, m_arg)) |
tuple | u16 = bs(l=16, cls=(x86_16, m_arg)) |
tuple | u32 = bs(l=32, cls=(x86_32, m_arg)) |
tuple | s3264 = bs(l=32, cls=(x86_s32to64, m_arg)) |
tuple | u08_3 = bs(l=0, cls=(x86_imm_fix, m_arg), ival = 3) |
tuple | d0 = bs("000", fname='reg') |
tuple | d1 = bs("001", fname='reg') |
tuple | d2 = bs("010", fname='reg') |
tuple | d3 = bs("011", fname='reg') |
tuple | d4 = bs("100", fname='reg') |
tuple | d5 = bs("101", fname='reg') |
tuple | d6 = bs("110", fname='reg') |
tuple | d7 = bs("111", fname='reg') |
tuple | sd = bs(l=1, fname="sd") |
tuple | wd = bs(l=1, fname="wd") |
tuple | stk = bs(l=0, fname="stk") |
tuple | d_imm64 = bs(l=0, fname="imm64") |
tuple | d_eax = bs(l=0, cls=(bs_eax, ), fname='eax') |
tuple | d_edx = bs(l=0, cls=(bs_edx, ), fname='edx') |
tuple | d_st = bs(l=0, cls=(x86_reg_st, ), fname='st') |
tuple | d_imm = bs(l=0, cls=(bs_cond_imm,), fname="imm") |
tuple | d_ax = bs(l=0, cls=(r_ax, ), fname='ax') |
tuple | d_dx = bs(l=0, cls=(r_dx, ), fname='dx') |
tuple | d_cl = bs(l=0, cls=(r_cl, ), fname='cl') |
tuple | d_cs = bs(l=0, cls=(bs_cs, ), fname='cs') |
tuple | d_ds = bs(l=0, cls=(bs_ds, ), fname='ds') |
tuple | d_es = bs(l=0, cls=(bs_es, ), fname='es') |
tuple | d_ss = bs(l=0, cls=(bs_ss, ), fname='ss') |
tuple | d_fs = bs(l=0, cls=(bs_fs, ), fname='fs') |
tuple | d_gs = bs(l=0, cls=(bs_gs, ), fname='gs') |
tuple | rel_off = bs(l=0, cls=(bs_rel_off,), fname="off", order=-1) |
tuple | rel_off08 = bs(l=8, cls=(bs_rel_off08,), fname="off", order=-1) |
tuple | moff = bs(l=0, cls=(bs_moff,), fname="off") |
tuple | msegoff = bs(l=16, cls=(bs_msegoff,), fname="mseg") |
tuple | movoff = bs(l=0, cls=(bs_movoff,), fname="off") |
tuple | mod = bs(l=2, fname="mod") |
tuple | mod_mem = bs(l=2, cls=(bs_mem,), fname="mod") |
tuple | rmreg = bs(l=3, cls=(x86_rm_reg, ), order =1, fname = "reg") |
tuple | reg = bs(l=3, cls=(x86_reg, ), order =1, fname = "reg") |
tuple | regnoarg = bs(l=3, default_val="000", order=1, fname="reg") |
tuple | segm = bs(l=3, cls=(x86_rm_segm, ), order =1, fname = "reg") |
tuple | crreg = bs(l=3, cls=(x86_rm_cr, ), order =1, fname = "reg") |
tuple | drreg = bs(l=3, cls=(x86_rm_dr, ), order =1, fname = "reg") |
tuple | mm_reg = bs(l=3, cls=(x86_rm_reg_mm, ), order =1, fname = "reg") |
tuple | xmm_reg = bs(l=3, cls=(x86_rm_reg_xmm, ), order =1, fname = "reg") |
tuple | fltreg = bs(l=3, cls=(x86_rm_flt, ), order =1, fname = "reg") |
tuple | rm = bs(l=3, fname="rm") |
tuple | rm_arg = bs(l=0, cls=(x86_rm_arg,), fname='rmarg') |
tuple | rm_arg_w8 = bs(l=0, cls=(x86_rm_w8,), fname='rmarg') |
tuple | rm_arg_sx = bs(l=0, cls=(x86_rm_sx,), fname='rmarg') |
tuple | rm_arg_sxd = bs(l=0, cls=(x86_rm_sxd,), fname='rmarg') |
tuple | rm_arg_sd = bs(l=0, cls=(x86_rm_sd,), fname='rmarg') |
tuple | rm_arg_wd = bs(l=0, cls=(x86_rm_wd,), fname='rmarg') |
tuple | rm_arg_m64 = bs(l=0, cls=(x86_rm_m64,), fname='rmarg') |
tuple | rm_arg_m80 = bs(l=0, cls=(x86_rm_m80,), fname='rmarg') |
tuple | rm_arg_m08 = bs(l=0, cls=(x86_rm_m08,), fname='rmarg') |
tuple | rm_arg_m16 = bs(l=0, cls=(x86_rm_m16,), fname='rmarg') |
tuple | rm_arg_mm = bs(l=0, cls=(x86_rm_mm,), fname='rmarg') |
tuple | rm_arg_mm_m64 = bs(l=0, cls=(x86_rm_mm_m64,), fname='rmarg') |
tuple | rm_arg_xmm = bs(l=0, cls=(x86_rm_xmm,), fname='rmarg') |
tuple | rm_arg_xmm_m32 = bs(l=0, cls=(x86_rm_xmm_m32,), fname='rmarg') |
tuple | rm_arg_xmm_m64 = bs(l=0, cls=(x86_rm_xmm_m64,), fname='rmarg') |
tuple | swapargs = bs_swapargs(l=1, fname="swap", mn_mod=range(1 << 1)) |
list | cond_list |
tuple | cond = bs_mod_name(l=4, fname='cond', mn_mod=cond_list) |
tuple | bs_opmode16 = bs(l=0, cls=(bs_op_mode,), mode = 16, fname="fopmode") |
tuple | bs_opmode32 = bs(l=0, cls=(bs_op_mode,), mode = 32, fname="fopmode") |
tuple | bs_opmode64 = bs(l=0, cls=(bs_op_mode,), mode = 64, fname="fopmode") |
tuple | bs_admode16 = bs(l=0, cls=(bs_ad_mode,), mode = 16, fname="fadmode") |
tuple | bs_admode32 = bs(l=0, cls=(bs_ad_mode,), mode = 32, fname="fadmode") |
tuple | bs_admode64 = bs(l=0, cls=(bs_ad_mode,), mode = 64, fname="fadmode") |
tuple | bs_opmode16_no64 = bs(l=0, cls=(bs_op_mode_no64,), mode = 16, fname="fopmode") |
tuple | bs_opmode32_no64 = bs(l=0, cls=(bs_op_mode_no64,), mode = 32, fname="fopmode") |
tuple | bs_mode64 = bs(l=0, cls=(bs_op_mode64,)) |
tuple | bs_modeno64 = bs(l=0, cls=(bs_op_modeno64,)) |
def miasm2.arch.x86.arch.addop | ( | name, | |
fields, | |||
args = None , |
|||
alias = False |
|||
) |
def miasm2.arch.x86.arch.admode_prefix | ( | mode | ) |
def miasm2.arch.x86.arch.ast_id2expr | ( | t | ) |
def miasm2.arch.x86.arch.ast_int2expr | ( | a | ) |
def miasm2.arch.x86.arch.expr2modrm | ( | expr, | |
parent, | |||
w8, | |||
sx = 0 , |
|||
xmm = 0 , |
|||
mm = 0 |
|||
) |
def miasm2.arch.x86.arch.exprfindmod | ( | e, | |
o = None |
|||
) |
def miasm2.arch.x86.arch.gen_modrm_form | ( | ) |
def miasm2.arch.x86.arch.get_prefix | ( | s | ) |
def miasm2.arch.x86.arch.getmodrm | ( | c | ) |
def miasm2.arch.x86.arch.getreg | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.modrm2expr | ( | modrm, | |
parent, | |||
w8, | |||
sx = 0 , |
|||
xmm = 0 , |
|||
mm = 0 |
|||
) |
def miasm2.arch.x86.arch.offsize | ( | p | ) |
def miasm2.arch.x86.arch.opmode_prefix | ( | mode | ) |
def miasm2.arch.x86.arch.parse_deref_int | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_intmreg | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_intmregint | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_ptr | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_reg | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_reg_intmreg | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_reg_intmreg_int | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_regint | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_regreg | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_regregint | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_deref_segmoff | ( | s, | |
l, | |||
t | |||
) |
def miasm2.arch.x86.arch.parse_mem | ( | expr, | |
parent, | |||
w8, | |||
sx = 0 , |
|||
xmm = 0 , |
|||
mm = 0 |
|||
) |
def miasm2.arch.x86.arch.print_size | ( | e | ) |
MMX/SSE/AVX operations Categories are the same than here: https://software.intel.com/sites/landingpage/IntrinsicsGuide/.
Arithmetic (integers) Move SSE Additions SSE Substractions SSE Arithmetic (floating-point) Additions SSE Substractions SSE Multiplications SSE Divisions SSE Logical (floating-point) XOR AND OR AND MMX OR MMX XOR MMX Convert SS = single precision SD = double precision SS -> SD
Definition at line 3955 of file arch.py.
def miasm2.arch.x86.arch.reg2exprid | ( | r | ) |
def miasm2.arch.x86.arch.rmmod | ( | r, | |
rm_arg_x = rm_arg , |
|||
modrm = mod |
|||
) |
def miasm2.arch.x86.arch.setmodrm | ( | mod, | |
re, | |||
rm | |||
) |
def miasm2.arch.x86.arch.sib | ( | c | ) |
def miasm2.arch.x86.arch.sib_cond | ( | cls, | |
mode, | |||
v | |||
) |
def miasm2.arch.x86.arch.test_addr_size | ( | ptr, | |
size | |||
) |
def miasm2.arch.x86.arch.v_admode | ( | p | ) |
def miasm2.arch.x86.arch.v_admode_info | ( | size, | |
admode | |||
) |
def miasm2.arch.x86.arch.v_opmode | ( | p | ) |
def miasm2.arch.x86.arch.v_opmode_info | ( | size, | |
opmode, | |||
rex_w, | |||
stk | |||
) |
tuple miasm2.arch.x86.arch.bs_admode16 = bs(l=0, cls=(bs_ad_mode,), mode = 16, fname="fadmode") |
tuple miasm2.arch.x86.arch.bs_admode32 = bs(l=0, cls=(bs_ad_mode,), mode = 32, fname="fadmode") |
tuple miasm2.arch.x86.arch.bs_admode64 = bs(l=0, cls=(bs_ad_mode,), mode = 64, fname="fadmode") |
tuple miasm2.arch.x86.arch.bs_mode64 = bs(l=0, cls=(bs_op_mode64,)) |
tuple miasm2.arch.x86.arch.bs_modeno64 = bs(l=0, cls=(bs_op_modeno64,)) |
tuple miasm2.arch.x86.arch.bs_opmode16 = bs(l=0, cls=(bs_op_mode,), mode = 16, fname="fopmode") |
tuple miasm2.arch.x86.arch.bs_opmode16_no64 = bs(l=0, cls=(bs_op_mode_no64,), mode = 16, fname="fopmode") |
tuple miasm2.arch.x86.arch.bs_opmode32 = bs(l=0, cls=(bs_op_mode,), mode = 32, fname="fopmode") |
tuple miasm2.arch.x86.arch.bs_opmode32_no64 = bs(l=0, cls=(bs_op_mode_no64,), mode = 32, fname="fopmode") |
tuple miasm2.arch.x86.arch.bs_opmode64 = bs(l=0, cls=(bs_op_mode,), mode = 64, fname="fopmode") |
tuple miasm2.arch.x86.arch.cl_or_imm = Group(r08_ecx.parser) |
tuple miasm2.arch.x86.arch.cond = bs_mod_name(l=4, fname='cond', mn_mod=cond_list) |
list miasm2.arch.x86.arch.cond_list |
list miasm2.arch.x86.arch.conditional_branch |
tuple miasm2.arch.x86.arch.console_handler = logging.StreamHandler() |
tuple miasm2.arch.x86.arch.d_imm = bs(l=0, cls=(bs_cond_imm,), fname="imm") |
tuple miasm2.arch.x86.arch.d_imm64 = bs(l=0, fname="imm64") |
tuple miasm2.arch.x86.arch.d_st = bs(l=0, cls=(x86_reg_st, ), fname='st') |
tuple miasm2.arch.x86.arch.dbreg = Group(gpregs16.parser | gpregs32.parser | gpregs64.parser) |
tuple miasm2.arch.x86.arch.deref_mem |
tuple miasm2.arch.x86.arch.deref_ptr |
tuple miasm2.arch.x86.arch.disp = bs(l=0, cls=(bs_cond_disp,), fname = "disp") |
tuple miasm2.arch.x86.arch.enc2segm = dict([(x[1], x[0]) for x in segm2enc.items()]) |
dictionary miasm2.arch.x86.arch.f_imm2size |
tuple miasm2.arch.x86.arch.fltreg = bs(l=3, cls=(x86_rm_flt, ), order =1, fname = "reg") |
tuple miasm2.arch.x86.arch.gpreg |
tuple miasm2.arch.x86.arch.log = logging.getLogger("x86_arch") |
dictionary miasm2.arch.x86.arch.MEMPREFIX2SIZE |
tuple miasm2.arch.x86.arch.mm_reg = bs(l=3, cls=(x86_rm_reg_mm, ), order =1, fname = "reg") |
tuple miasm2.arch.x86.arch.msegoff = bs(l=16, cls=(bs_msegoff,), fname="mseg") |
tuple miasm2.arch.x86.arch.my_var_parser = parse_ast(ast_id2expr, ast_int2expr) |
tuple miasm2.arch.x86.arch.no_xmm_pref = bs(l=0, fname="no_xmm_pref") |
tuple miasm2.arch.x86.arch.pref_66 = bs(l=0, fname="prefixed", default="\x66") |
tuple miasm2.arch.x86.arch.pref_f2 = bs(l=0, fname="prefixed", default="\xf2") |
tuple miasm2.arch.x86.arch.pref_f3 = bs(l=0, fname="prefixed", default="\xf3") |
tuple miasm2.arch.x86.arch.regnoarg = bs(l=3, default_val="000", order=1, fname="reg") |
tuple miasm2.arch.x86.arch.rel_off = bs(l=0, cls=(bs_rel_off,), fname="off", order=-1) |
tuple miasm2.arch.x86.arch.rel_off08 = bs(l=8, cls=(bs_rel_off08,), fname="off", order=-1) |
list miasm2.arch.x86.arch.repeat_mn |
dictionary miasm2.arch.x86.arch.replace_regs |
dictionary miasm2.arch.x86.arch.replace_regs32 |
dictionary miasm2.arch.x86.arch.replace_regs64 |
tuple miasm2.arch.x86.arch.rm_arg = bs(l=0, cls=(x86_rm_arg,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_m08 = bs(l=0, cls=(x86_rm_m08,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_m16 = bs(l=0, cls=(x86_rm_m16,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_m64 = bs(l=0, cls=(x86_rm_m64,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_m80 = bs(l=0, cls=(x86_rm_m80,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_mm_m64 = bs(l=0, cls=(x86_rm_mm_m64,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_sxd = bs(l=0, cls=(x86_rm_sxd,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_xmm = bs(l=0, cls=(x86_rm_xmm,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_xmm_m32 = bs(l=0, cls=(x86_rm_xmm_m32,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rm_arg_xmm_m64 = bs(l=0, cls=(x86_rm_xmm_m64,), fname='rmarg') |
tuple miasm2.arch.x86.arch.rmarg |
tuple miasm2.arch.x86.arch.rmreg = bs(l=3, cls=(x86_rm_reg, ), order =1, fname = "reg") |
tuple miasm2.arch.x86.arch.s3264 = bs(l=32, cls=(x86_s32to64, m_arg)) |
tuple miasm2.arch.x86.arch.segm = bs(l=3, cls=(x86_rm_segm, ), order =1, fname = "reg") |
dictionary miasm2.arch.x86.arch.segm2enc = {CS: 1, SS: 2, DS: 3, ES: 4, FS: 5, GS: 6} |
tuple miasm2.arch.x86.arch.sib_base = bs(l=3, cls=(bs_cond_index,), fname = "sib_base") |
tuple miasm2.arch.x86.arch.sib_index = bs(l=3, cls=(bs_cond_index,), fname = "sib_index") |
tuple miasm2.arch.x86.arch.sib_scale = bs(l=2, cls=(bs_cond_scale,), fname = "sib_scale") |
dictionary miasm2.arch.x86.arch.size2gpregs |
tuple miasm2.arch.x86.arch.SIZE2MEMPREFIX = dict((x[1], x[0]) for x in MEMPREFIX2SIZE.items()) |
dictionary miasm2.arch.x86.arch.SIZE2XMMREG |
tuple miasm2.arch.x86.arch.swapargs = bs_swapargs(l=1, fname="swap", mn_mod=range(1 << 1)) |
tuple miasm2.arch.x86.arch.u08_3 = bs(l=0, cls=(x86_imm_fix, m_arg), ival = 3) |
list miasm2.arch.x86.arch.unconditional_branch = ['JMP', 'JMPF'] |
tuple miasm2.arch.x86.arch.xmm_reg = bs(l=3, cls=(x86_rm_reg_xmm, ), order =1, fname = "reg") |
tuple miasm2.arch.x86.arch.xmmreg = bs(l=0, fname="xmmreg") |