syscalls_arm64.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //go:build linux && arm64
  2. package python_syscall
  3. import (
  4. "syscall"
  5. )
  6. const (
  7. SYS_RSEQ = 293
  8. )
  9. var ALLOW_SYSCALLS = []int{
  10. // file io
  11. syscall.SYS_WRITE, syscall.SYS_CLOSE, syscall.SYS_OPENAT, syscall.SYS_READ, syscall.SYS_LSEEK, syscall.SYS_GETDENTS64,
  12. // thread
  13. syscall.SYS_FUTEX,
  14. // memory
  15. syscall.SYS_MMAP, syscall.SYS_BRK, syscall.SYS_MPROTECT, syscall.SYS_MUNMAP, syscall.SYS_RT_SIGRETURN, syscall.SYS_RT_SIGPROCMASK,
  16. syscall.SYS_SIGALTSTACK, syscall.SYS_MREMAP,
  17. // user/group
  18. syscall.SYS_SETUID, syscall.SYS_SETGID, syscall.SYS_GETUID,
  19. // process
  20. syscall.SYS_GETPID, syscall.SYS_GETPPID, syscall.SYS_GETTID,
  21. syscall.SYS_EXIT, syscall.SYS_EXIT_GROUP,
  22. syscall.SYS_TGKILL, syscall.SYS_RT_SIGACTION,
  23. syscall.SYS_IOCTL, syscall.SYS_SCHED_YIELD,
  24. syscall.SYS_GET_ROBUST_LIST, syscall.SYS_SET_ROBUST_LIST,
  25. SYS_RSEQ,
  26. // time
  27. syscall.SYS_EPOLL_CREATE1,
  28. syscall.SYS_CLOCK_GETTIME, syscall.SYS_GETTIMEOFDAY, syscall.SYS_NANOSLEEP,
  29. syscall.SYS_EPOLL_CTL, syscall.SYS_CLOCK_NANOSLEEP, syscall.SYS_PSELECT6,
  30. syscall.SYS_TIMERFD_CREATE, syscall.SYS_TIMERFD_SETTIME, syscall.SYS_TIMERFD_GETTIME,
  31. // get random
  32. syscall.SYS_GETRANDOM,
  33. }
  34. var ALLOW_ERROR_SYSCALLS = []int{
  35. syscall.SYS_CLONE,
  36. syscall.SYS_MKDIRAT,
  37. }
  38. var ALLOW_NETWORK_SYSCALLS = []int{
  39. syscall.SYS_SOCKET, syscall.SYS_CONNECT, syscall.SYS_BIND, syscall.SYS_LISTEN, syscall.SYS_ACCEPT, syscall.SYS_SENDTO,
  40. syscall.SYS_RECVFROM, syscall.SYS_RECVMSG, syscall.SYS_GETSOCKOPT,
  41. syscall.SYS_GETSOCKNAME, syscall.SYS_GETPEERNAME, syscall.SYS_SETSOCKOPT,
  42. syscall.SYS_PPOLL, syscall.SYS_UNAME, syscall.SYS_SENDMMSG,
  43. syscall.SYS_FSTATAT, syscall.SYS_FSTAT, syscall.SYS_FSTATFS, syscall.SYS_EPOLL_PWAIT,
  44. }