Python capstone.CS_ARCH_ARM Examples
The following are 9
code examples of capstone.CS_ARCH_ARM().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
capstone
, or try the search function
.
Example #1
Source File: DisasmViewMode.py From qiew with GNU General Public License v2.0 | 6 votes |
def init_disassembler_engine(self): # init state for disasambler # set capstone, lexer, asmline arch, mode = self.plugin.hintDisasm() self.disasm_engine = capstone.Cs(arch, mode) self.disasm_engine.detail = True if arch == capstone.CS_ARCH_X86: Lexer = X86_Lexer() if arch == capstone.CS_ARCH_ARM and mode in [capstone.CS_MODE_ARM, capstone.CS_MODE_THUMB]: Lexer = ARM_Lexer() if arch == capstone.CS_ARCH_ARM64: Lexer = ARM64_Lexer() # todo: ASM_ARM_Line? self.ASMLine = ASMx86Line Lexer.build() self.lexer = Lexer.lexer()
Example #2
Source File: disassembler.py From barf-project with BSD 2-Clause "Simplified" License | 6 votes |
def _cs_disassemble_one(self, data, address): """Disassemble the data into an instruction in string form. """ disasm = list(self._disassembler.disasm(bytes(data), address)) # TODO: Improve this check. if len(disasm) > 0: return disasm[0] else: cs_arm = Cs(CS_ARCH_ARM, CS_MODE_ARM) cs_arm.detail = True disasm = list(cs_arm.disasm(bytes(data), address)) if len(disasm) > 0: return disasm[0] else: raise InvalidDisassemblerData("CAPSTONE: Unknown instruction (Addr: {:s}).".format(hex(address)))
Example #3
Source File: disassembler.py From barf-project with BSD 2-Clause "Simplified" License | 6 votes |
def __setup_available_disassemblers(self): arch_map = { ARCH_ARM_MODE_ARM: CS_MODE_ARM, ARCH_ARM_MODE_THUMB: CS_MODE_THUMB, } self._available_disassemblers = { ARCH_ARM_MODE_ARM: Cs(CS_ARCH_ARM, arch_map[ARCH_ARM_MODE_ARM]), ARCH_ARM_MODE_THUMB: Cs(CS_ARCH_ARM, arch_map[ARCH_ARM_MODE_THUMB]), } self._available_disassemblers[ARCH_ARM_MODE_ARM].detail = True self._available_disassemblers[ARCH_ARM_MODE_THUMB].detail = True # Casptone to BARF translation # ======================================================================== #
Example #4
Source File: abstractcpu.py From manticore with GNU Affero General Public License v3.0 | 6 votes |
def _reg_name(self, reg_id: int): """ Translates a register ID from the disassembler object into the register name based on manticore's alias in the register file :param reg_id: Register ID """ # XXX: Support other architectures. if ( (self.cpu.arch == CS_ARCH_ARM64 and reg_id >= ARM64_REG_ENDING) or (self.cpu.arch == CS_ARCH_X86 and reg_id >= X86_REG_ENDING) or (self.cpu.arch == CS_ARCH_ARM and reg_id >= ARM_REG_ENDING) ): logger.warning("Trying to get register name for a non-register") return None cs_reg_name = self.cpu.instruction.reg_name(reg_id) if cs_reg_name is None or cs_reg_name.lower() == "(invalid)": return None return self.cpu._regfile._alias(cs_reg_name.upper())
Example #5
Source File: disasm.py From PyDev.Debugger with Eclipse Public License 1.0 | 5 votes |
def _import_dependencies(self): # Load the Capstone bindings. global capstone if capstone is None: import capstone # Load the constants for the requested architecture. self.__constants = { win32.ARCH_I386: (capstone.CS_ARCH_X86, capstone.CS_MODE_32), win32.ARCH_AMD64: (capstone.CS_ARCH_X86, capstone.CS_MODE_64), win32.ARCH_THUMB: (capstone.CS_ARCH_ARM, capstone.CS_MODE_THUMB), win32.ARCH_ARM: (capstone.CS_ARCH_ARM, capstone.CS_MODE_ARM), win32.ARCH_ARM64: (capstone.CS_ARCH_ARM64, capstone.CS_MODE_ARM), } # Test for the bug in early versions of Capstone. # If found, warn the user about it. try: self.__bug = not isinstance( capstone.cs_disasm_quick( capstone.CS_ARCH_X86, capstone.CS_MODE_32, "\x90", 1)[0], capstone.capstone.CsInsn) except AttributeError: self.__bug = False if self.__bug: warnings.warn( "This version of the Capstone bindings is unstable," " please upgrade to a newer one!", RuntimeWarning, stacklevel=4)
Example #6
Source File: assembly_repository.py From Il2cppSpy with MIT License | 5 votes |
def disassemble(self, code: bytes, address: int) -> List[DumpAssembly]: dump_assemblies = [] md = Cs(CS_ARCH_ARM, CS_MODE_ARM) for i in md.disasm(code, address): dump_assemblies.append(DumpAssembly(i.address, f'{i.mnemonic}\t{i.op_str}')) return dump_assemblies
Example #7
Source File: disasm.py From OpenXMolar with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, arch = None): super(CapstoneEngine, self).__init__(arch) # Load the constants for the requested architecture. self.__constants = { win32.ARCH_I386: (capstone.CS_ARCH_X86, capstone.CS_MODE_32), win32.ARCH_AMD64: (capstone.CS_ARCH_X86, capstone.CS_MODE_64), win32.ARCH_THUMB: (capstone.CS_ARCH_ARM, capstone.CS_MODE_THUMB), win32.ARCH_ARM: (capstone.CS_ARCH_ARM, capstone.CS_MODE_ARM), win32.ARCH_ARM64: (capstone.CS_ARCH_ARM64, capstone.CS_MODE_ARM), } # Test for the bug in early versions of Capstone. # If found, warn the user about it. try: self.__bug = not isinstance( list(capstone.cs_disasm_quick( capstone.CS_ARCH_X86, capstone.CS_MODE_32, "\x90", 1 ))[0], capstone.capstone.CsInsn ) except AttributeError: self.__bug = False if self.__bug: warnings.warn( "This version of the Capstone bindings is unstable," " please upgrade to a newer one!", RuntimeWarning, stacklevel=4)
Example #8
Source File: disasm.py From filmkodi with Apache License 2.0 | 5 votes |
def _import_dependencies(self): # Load the Capstone bindings. global capstone if capstone is None: import capstone # Load the constants for the requested architecture. self.__constants = { win32.ARCH_I386: (capstone.CS_ARCH_X86, capstone.CS_MODE_32), win32.ARCH_AMD64: (capstone.CS_ARCH_X86, capstone.CS_MODE_64), win32.ARCH_THUMB: (capstone.CS_ARCH_ARM, capstone.CS_MODE_THUMB), win32.ARCH_ARM: (capstone.CS_ARCH_ARM, capstone.CS_MODE_ARM), win32.ARCH_ARM64: (capstone.CS_ARCH_ARM64, capstone.CS_MODE_ARM), } # Test for the bug in early versions of Capstone. # If found, warn the user about it. try: self.__bug = not isinstance( capstone.cs_disasm_quick( capstone.CS_ARCH_X86, capstone.CS_MODE_32, "\x90", 1)[0], capstone.capstone.CsInsn) except AttributeError: self.__bug = False if self.__bug: warnings.warn( "This version of the Capstone bindings is unstable," " please upgrade to a newer one!", RuntimeWarning, stacklevel=4)
Example #9
Source File: main.py From frick with MIT License | 5 votes |
def __init__(self): super(Arm, self).__init__() self.unicorn_arch = unicorn.UC_ARCH_ARM self.unicorn_mode = unicorn.UC_MODE_ARM self.capstone_arch = capstone.CS_ARCH_ARM self.capstone_mode = capstone.CS_MODE_ARM