def __init__(self, opcodes, imageFileName, symbols, indirectAddresses, directAddresses=()): self.opcodes = opcodes self.memory = ReadWriteMemory(file(imageFileName, "rb")) self.memoryExplorer = MemoryExplorer(size=len(self.memory), offset=0x0000) self.getByte = self.memory.createGetter(1, self.memory.BIG_ENDIAN) self.getWord = self.memory.createGetter(2, self.memory.BIG_ENDIAN) self.symbols = symbols Operation.symbols = self.symbols self.pc = 0x0000 self.callTargets = set( tuple([self.getWord(e) for e in indirectAddresses])).union(set(directAddresses)) self.jumpTargets = set() self.processed = set()
def __init__(self, image): self.memory = ReadWriteMemory(StringIO(image)) self.getByte = self.memory.createGetter(1, self.memory.BIG_ENDIAN) self.getWord = self.memory.createGetter(2, self.memory.BIG_ENDIAN)