def _helper(block,m): # update block.misc based on semantics: sta,sto = block.support if m[cpu.mem(cpu.ebp-4,32)] == cpu.ebp: block.misc[tag.FUNC_START]=1 if m[cpu.eip]==cpu.mem(cpu.esp-4,32): block.misc[tag.FUNC_END]=1 if m[cpu.mem(cpu.esp,32)]==sto: block.misc[tag.FUNC_CALL]=1
def _helper(block, m): # update block.misc based on semantics: sta, sto = block.support if m[cpu.mem(cpu.ebp - 4, 32)] == cpu.ebp: block.misc[tag.FUNC_START] = 1 if m[cpu.eip] == cpu.mem(cpu.esp - 4, 32): block.misc[tag.FUNC_END] = 1 if m[cpu.mem(cpu.esp, 32)] == sto: block.misc[tag.FUNC_CALL] = 1
def blockhelper(self,block): for i in self.seqhelper(block.instr): block.misc.update(i.misc) # compute mapper: m = block.map # annotations based on block semantics: sta,sto = block.support if m[cpu.mem(cpu.ebp-4,32)] == cpu.ebp: block.misc[tag.FUNC_START]=1 if m[cpu.eip]==cpu.mem(cpu.esp-4,32): block.misc[tag.FUNC_END]=1 if m[cpu.mem(cpu.esp,32)]==sto: block.misc[tag.FUNC_CALL]=1 return block
def __libc_start_main(m, **kargs): "tags: func_call" m[cpu.eip] = m(cpu.mem(cpu.esp + 4, 32)) cpu.push(m, cpu.ext('exit', size=32))
def __libc_start_main(m,**kargs): "tags: func_call" m[cpu.eip] = m(cpu.mem(cpu.esp+4,32)) cpu.push(m,cpu.ext('exit',size=32))
def libc_start_main(m, **kargs): "tags: func_call" m[cpu.eip] = m(cpu.mem(cpu.esp + 4, 32)) x = cpu.ext("exit", size=32) x.stub = libc_exit cpu.push(m, x)
def __libc_start_main(m): m[cpu.eip] = m(cpu.mem(cpu.esp+4,32)) cpu.push(m,cpu.ext('exit'))