func DarwinSyscall(u models.Usercorn, class int) { getArgs := common.StackArgs(u) eax, _ := u.RegRead(uc.X86_REG_EAX) nr := class<<24 | int(eax) name, _ := num.Darwin_x86_mach[nr] ret, _ := u.Syscall(nr, name, getArgs) u.RegWrite(uc.X86_REG_EAX, ret) }
func DarwinSyscall(u models.Usercorn, class int) { // TODO: read args from stack without modifying reg so we don't need to restore esp esp, _ := u.RegRead(uc.X86_REG_ESP) getArgs := common.StackArgs(u) eax, _ := u.RegRead(uc.X86_REG_EAX) nr := class<<24 | int(eax) name, _ := num.Darwin_x86_mach[nr] ret, _ := u.Syscall(nr, name, getArgs) u.RegWrite(uc.X86_REG_EAX, ret) u.RegWrite(uc.X86_REG_ESP, esp) }