1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| def __init__(self, addr, project=None, arch=None, size=None, byte_string=None, vex=None, thumb=False, backup_state=None, opt_level=None, num_inst=None, traceflags=0, strict_block_end=None):
if project is not None: self.arch = project.arch else: self.arch = arch
.... .... self._project = project self.thumb = thumb self.addr = addr self._opt_level = opt_level if self._project is None and byte_string is None: raise ValueError('"byte_string" has to be specified if "project" is not provided.') if size is None: if byte_string is not None: size = len(byte_string) elif vex is not None: size = vex.size else: vex = self._vex_engine.lift( clemory=project.loader.memory, state=backup_state, insn_bytes=byte_string, addr=addr, thumb=thumb, opt_level=opt_level, num_inst=num_inst, traceflags=traceflags, strict_block_end=strict_block_end) size = vex.size
|