Source code for envi.archs.arm

"""
The initial arm module.
"""

import envi

from envi.archs.arm.regs import *
from envi.archs.arm.disasm import *
from envi.archs.arm.armdisasm import *
from envi.archs.arm.thumbdisasm import *

class ArmModule(envi.ArchitectureModule):
[docs] def __init__(self): envi.ArchitectureModule.__init__(self, "armv6", maxinst=4) self._arch_reg = self.archGetRegCtx() self._arch_dis = ArmDisasm() def setModeThumb(self):
[docs] self._arch_dis.setMode(MODE_THUMB) def archGetRegCtx(self):
[docs] return ArmRegisterContext() def archGetBreakInstr(self):
[docs] raise Exception ("weird... what are you trying to do here? ARM has a complex breakpoint instruction") return def getPointerSize(self):
[docs] return 4 def pointerString(self, va):
[docs] return "0x%.8x" % va def makeOpcode(self, bytes, offset=0, va=0):
[docs] """ Parse a sequence of bytes out into an envi.Opcode instance. """ return self._arch_dis.disasm(bytes, offset, va) def getEmulator(self):
[docs] return ArmEmulator() from envi.archs.arm.emu import *