Example #1
0
def syscall(cls):
    regs = [UC_X86_REG_EBX, UC_X86_REG_ECX, UC_X86_REG_EDX, UC_X86_REG_ESI, UC_X86_REG_EDI, UC_X86_REG_EBP]
    args = [cls.reg_read(r) for r in regs]
    num = cls.reg_read(UC_X86_REG_EAX)
    ret = syscalls.call(cls, SYSCALLS, num, lambda n: args[:n])
    cls.reg_write(UC_X86_REG_EAX, ret)
Example #2
0
def syscall(cls):
    num, args = syscall_args(cls)
    ret = syscalls.call(cls, SYSCALLS, num, lambda n: args[:n])
    cls.reg_write(UC_X86_REG_RAX, ret)
Example #3
0
def syscall(cls):
    esp = cls.reg_read(UC_X86_REG_ESP)
    num = cls.reg_read(UC_X86_REG_EAX)
    ret = syscalls.call(cls, SYSCALLS, num, syscalls.stack_args(cls))
    cls.reg_write(UC_X86_REG_EAX, ret)
    cls.reg_write(UC_X86_REG_ESP, esp)