Ejemplo n.º 1
0
    def __init__(self):
        e_i386.i386Disasm.__init__(self)
        self._dis_prefixes = amd64_prefixes
        self._dis_regctx = Amd64RegisterContext()

        # Over-ride these which are in use by the i386 version of the ASM
        self.ROFFSET_MMX   = e_i386.getRegOffset(amd64regs, "mm0")
        self.ROFFSET_SIMD  = e_i386.getRegOffset(amd64regs, "xmm0")
        self.ROFFSET_DEBUG = e_i386.getRegOffset(amd64regs, "debug0")
        self.ROFFSET_CTRL  = e_i386.getRegOffset(amd64regs, "ctrl0")
        self.ROFFSET_TEST  = e_i386.getRegOffset(amd64regs, "test0")
        self.ROFFSET_SEG   = e_i386.getRegOffset(amd64regs, "es")
        self.ROFFSET_FPU   = e_i386.getRegOffset(amd64regs, "st0")
Ejemplo n.º 2
0
    def __init__(self):
        e_i386.i386Disasm.__init__(self)
        self._dis_prefixes = amd64_prefixes
        self._dis_regctx = Amd64RegisterContext()

        # Over-ride these which are in use by the i386 version of the ASM
        self.ROFFSET_MMX = e_i386.getRegOffset(amd64regs, "mm0")
        self.ROFFSET_SIMD = e_i386.getRegOffset(amd64regs, "xmm0")
        self.ROFFSET_DEBUG = e_i386.getRegOffset(amd64regs, "debug0")
        self.ROFFSET_CTRL = e_i386.getRegOffset(amd64regs, "ctrl0")
        self.ROFFSET_TEST = e_i386.getRegOffset(amd64regs, "test0")
        self.ROFFSET_SEG = e_i386.getRegOffset(amd64regs, "es")
        self.ROFFSET_FPU = e_i386.getRegOffset(amd64regs, "st0")
    def __init__(self):
        e_i386.i386Disasm.__init__(self)
        self._dis_oparch = envi.ARCH_AMD64
        self._dis_prefixes = amd64_prefixes
        self._dis_regctx = Amd64RegisterContext()
        self.ptrsize = 8

        # Over-ride these which are in use by the i386 version of the ASM
        self.ROFFSETMMX   = e_i386.getRegOffset(amd64regs, "mm0")
        self.ROFFSETSIMD  = e_i386.getRegOffset(amd64regs, "xmm0")
        self.ROFFSETDEBUG = e_i386.getRegOffset(amd64regs, "debug0")
        self.ROFFSETCTRL  = e_i386.getRegOffset(amd64regs, "ctrl0")
        self.ROFFSETTEST  = e_i386.getRegOffset(amd64regs, "test0")
        self.ROFFSETSEG   = e_i386.getRegOffset(amd64regs, "es")
        self.ROFFSETFPU   = e_i386.getRegOffset(amd64regs, "st0")
Ejemplo n.º 4
0
    def __init__(self):
        e_i386.i386Disasm.__init__(self)
        self._dis_oparch = envi.ARCH_AMD64
        self._dis_prefixes = amd64_prefixes
        self._dis_regctx = Amd64RegisterContext()
        self.ptrsize = 8

        # 64-bit only
        self._dis_amethods[opcode86.ADDRMETH_B >> 16] = self.ameth_b
        self._dis_amethods[opcode86.ADDRMETH_H >> 16] = self.ameth_h
        self._dis_amethods[opcode86.ADDRMETH_L >> 16] = self.ameth_l

        # Over-ride these which are in use by the i386 version of the ASM
        self.ROFFSETMMX = e_i386.getRegOffset(amd64regs, "mm0")
        self.ROFFSETSIMD = e_i386.getRegOffset(amd64regs, "ymm0")
        self.ROFFSETDEBUG = e_i386.getRegOffset(amd64regs, "debug0")
        self.ROFFSETCTRL = e_i386.getRegOffset(amd64regs, "ctrl0")
        self.ROFFSETTEST = e_i386.getRegOffset(amd64regs, "test0")
        self.ROFFSETSEG = e_i386.getRegOffset(amd64regs, "es")
        self.ROFFSETFPU = e_i386.getRegOffset(amd64regs, "st0")
Ejemplo n.º 5
0
    def __init__(self):
        e_i386.i386Disasm.__init__(self)
        self._dis_oparch = envi.ARCH_AMD64
        self._dis_prefixes = amd64_prefixes
        self._dis_regctx = Amd64RegisterContext()
        self.ptrsize = 8

        # 64-bit only
        self._dis_amethods[opcode86.ADDRMETH_B>>16] = self.ameth_b
        self._dis_amethods[opcode86.ADDRMETH_H>>16] = self.ameth_h
        self._dis_amethods[opcode86.ADDRMETH_L>>16] = self.ameth_l

        # Over-ride these which are in use by the i386 version of the ASM
        self.ROFFSETMMX   = e_i386.getRegOffset(amd64regs, "mm0")
        self.ROFFSETSIMD  = e_i386.getRegOffset(amd64regs, "ymm0")
        self.ROFFSETDEBUG = e_i386.getRegOffset(amd64regs, "debug0")
        self.ROFFSETCTRL  = e_i386.getRegOffset(amd64regs, "ctrl0")
        self.ROFFSETTEST  = e_i386.getRegOffset(amd64regs, "test0")
        self.ROFFSETSEG   = e_i386.getRegOffset(amd64regs, "es")
        self.ROFFSETFPU   = e_i386.getRegOffset(amd64regs, "st0")
Ejemplo n.º 6
0
    def __init__(self, mode=MODE_64):
        e_i386.i386Disasm.__init__(self, mode=mode)
        self._dis_oparch = envi.ARCH_AMD64
        self._dis_prefixes = amd64_prefixes
        self._dis_regctx = Amd64RegisterContext()
        self.ptrsize = 8

        # 64-bit only
        self._dis_amethods[opcode86.ADDRMETH_B >> 16] = self.ameth_b
        self._dis_amethods[opcode86.ADDRMETH_H >> 16] = self.ameth_h
        self._dis_amethods[opcode86.ADDRMETH_E >> 16] = self.ameth_e
        self._dis_amethods[opcode86.ADDRMETH_L >> 16] = self.ameth_l
        self._dis_amethods[opcode86.ADDRMETH_VEXH >> 16] = self.ameth_vexh

        # Over-ride these which are in use by the i386 version of the ASM
        self.ROFFSETSIMD = e_i386.getRegOffset(amd64regs, "ymm0")
        self.ROFFSETDEBUG = e_i386.getRegOffset(amd64regs, "debug0")
        self.ROFFSETCTRL = e_i386.getRegOffset(amd64regs, "ctrl0")
        self.ROFFSETTEST = e_i386.getRegOffset(amd64regs, "test0")
        self.ROFFSETSEG = e_i386.getRegOffset(amd64regs, "es")
        self.ROFFSETFPU = e_i386.getRegOffset(amd64regs, "st0")
        # Note: getRegOffset doesn't work on meta registers and mm* are aliases of the
        # st registers, so we use getRegisterIndex instead
        self.ROFFSETMMX = self._dis_regctx.getRegisterIndex("mm0")