Exemple #1
0
 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
Exemple #2
0
 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
Exemple #3
0
 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
Exemple #4
0
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))
Exemple #5
0
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))
Exemple #6
0
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)
Exemple #7
0
def __libc_start_main(m):
    m[cpu.eip] = m(cpu.mem(cpu.esp+4,32))
    cpu.push(m,cpu.ext('exit'))