Added names of syscalls to syscall_info debug print
This commit is contained in:
parent
b4e7e6864a
commit
7537227636
|
|
@ -6,6 +6,7 @@ This is an alternative implementation that relies on libc and unsafe.
|
||||||
|
|
||||||
use crate::syscall_info::SyscallInfoError::UnsupportedType;
|
use crate::syscall_info::SyscallInfoError::UnsupportedType;
|
||||||
use std::mem::MaybeUninit;
|
use std::mem::MaybeUninit;
|
||||||
|
use crate::syscall_names::syscall_name;
|
||||||
|
|
||||||
#[derive(thiserror::Error, Debug)]
|
#[derive(thiserror::Error, Debug)]
|
||||||
pub enum SyscallInfoError {
|
pub enum SyscallInfoError {
|
||||||
|
|
@ -30,6 +31,7 @@ pub enum SyscallInfo {
|
||||||
rip: u64,
|
rip: u64,
|
||||||
#[debug("{stack_pointer:#x}")]
|
#[debug("{stack_pointer:#x}")]
|
||||||
stack_pointer: u64,
|
stack_pointer: u64,
|
||||||
|
#[debug("{number} ({})", syscall_name(*number))]
|
||||||
number: u64,
|
number: u64,
|
||||||
args: [u64; 6],
|
args: [u64; 6],
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,375 @@
|
||||||
|
#[allow(dead_code)]
|
||||||
|
pub fn syscall_name(syscall_number: u64) -> &'static str {
|
||||||
|
// From https://github.com/torvalds/linux/blob/v6.7/arch/x86/entry/syscalls/syscall_64.tbl
|
||||||
|
match syscall_number {
|
||||||
|
0 => "read",
|
||||||
|
1 => "write",
|
||||||
|
2 => "open",
|
||||||
|
3 => "close",
|
||||||
|
4 => "stat",
|
||||||
|
5 => "fstat",
|
||||||
|
6 => "lstat",
|
||||||
|
7 => "poll",
|
||||||
|
8 => "lseek",
|
||||||
|
9 => "mmap",
|
||||||
|
10 => "mprotect",
|
||||||
|
11 => "munmap",
|
||||||
|
12 => "brk",
|
||||||
|
13 => "rt_sigaction",
|
||||||
|
14 => "rt_sigprocmask",
|
||||||
|
15 => "rt_sigreturn",
|
||||||
|
16 => "ioctl",
|
||||||
|
17 => "pread64",
|
||||||
|
18 => "pwrite64",
|
||||||
|
19 => "readv",
|
||||||
|
20 => "writev",
|
||||||
|
21 => "access",
|
||||||
|
22 => "pipe",
|
||||||
|
23 => "select",
|
||||||
|
24 => "sched_yield",
|
||||||
|
25 => "mremap",
|
||||||
|
26 => "msync",
|
||||||
|
27 => "mincore",
|
||||||
|
28 => "madvise",
|
||||||
|
29 => "shmget",
|
||||||
|
30 => "shmat",
|
||||||
|
31 => "shmctl",
|
||||||
|
32 => "dup",
|
||||||
|
33 => "dup2",
|
||||||
|
34 => "pause",
|
||||||
|
35 => "nanosleep",
|
||||||
|
36 => "getitimer",
|
||||||
|
37 => "alarm",
|
||||||
|
38 => "setitimer",
|
||||||
|
39 => "getpid",
|
||||||
|
40 => "sendfile",
|
||||||
|
41 => "socket",
|
||||||
|
42 => "connect",
|
||||||
|
43 => "accept",
|
||||||
|
44 => "sendto",
|
||||||
|
45 => "recvfrom",
|
||||||
|
46 => "sendmsg",
|
||||||
|
47 => "recvmsg",
|
||||||
|
48 => "shutdown",
|
||||||
|
49 => "bind",
|
||||||
|
50 => "listen",
|
||||||
|
51 => "getsockname",
|
||||||
|
52 => "getpeername",
|
||||||
|
53 => "socketpair",
|
||||||
|
54 => "setsockopt",
|
||||||
|
55 => "getsockopt",
|
||||||
|
56 => "clone",
|
||||||
|
57 => "fork",
|
||||||
|
58 => "vfork",
|
||||||
|
59 => "execve",
|
||||||
|
60 => "exit",
|
||||||
|
61 => "wait4",
|
||||||
|
62 => "kill",
|
||||||
|
63 => "uname",
|
||||||
|
64 => "semget",
|
||||||
|
65 => "semop",
|
||||||
|
66 => "semctl",
|
||||||
|
67 => "shmdt",
|
||||||
|
68 => "msgget",
|
||||||
|
69 => "msgsnd",
|
||||||
|
70 => "msgrcv",
|
||||||
|
71 => "msgctl",
|
||||||
|
72 => "fcntl",
|
||||||
|
73 => "flock",
|
||||||
|
74 => "fsync",
|
||||||
|
75 => "fdatasync",
|
||||||
|
76 => "truncate",
|
||||||
|
77 => "ftruncate",
|
||||||
|
78 => "getdents",
|
||||||
|
79 => "getcwd",
|
||||||
|
80 => "chdir",
|
||||||
|
81 => "fchdir",
|
||||||
|
82 => "rename",
|
||||||
|
83 => "mkdir",
|
||||||
|
84 => "rmdir",
|
||||||
|
85 => "creat",
|
||||||
|
86 => "link",
|
||||||
|
87 => "unlink",
|
||||||
|
88 => "symlink",
|
||||||
|
89 => "readlink",
|
||||||
|
90 => "chmod",
|
||||||
|
91 => "fchmod",
|
||||||
|
92 => "chown",
|
||||||
|
93 => "fchown",
|
||||||
|
94 => "lchown",
|
||||||
|
95 => "umask",
|
||||||
|
96 => "gettimeofday",
|
||||||
|
97 => "getrlimit",
|
||||||
|
98 => "getrusage",
|
||||||
|
99 => "sysinfo",
|
||||||
|
100 => "times",
|
||||||
|
101 => "ptrace",
|
||||||
|
102 => "getuid",
|
||||||
|
103 => "syslog",
|
||||||
|
104 => "getgid",
|
||||||
|
105 => "setuid",
|
||||||
|
106 => "setgid",
|
||||||
|
107 => "geteuid",
|
||||||
|
108 => "getegid",
|
||||||
|
109 => "setpgid",
|
||||||
|
110 => "getppid",
|
||||||
|
111 => "getpgrp",
|
||||||
|
112 => "setsid",
|
||||||
|
113 => "setreuid",
|
||||||
|
114 => "setregid",
|
||||||
|
115 => "getgroups",
|
||||||
|
116 => "setgroups",
|
||||||
|
117 => "setresuid",
|
||||||
|
118 => "getresuid",
|
||||||
|
119 => "setresgid",
|
||||||
|
120 => "getresgid",
|
||||||
|
121 => "getpgid",
|
||||||
|
122 => "setfsuid",
|
||||||
|
123 => "setfsgid",
|
||||||
|
124 => "getsid",
|
||||||
|
125 => "capget",
|
||||||
|
126 => "capset",
|
||||||
|
127 => "rt_sigpending",
|
||||||
|
128 => "rt_sigtimedwait",
|
||||||
|
129 => "rt_sigqueueinfo",
|
||||||
|
130 => "rt_sigsuspend",
|
||||||
|
131 => "sigaltstack",
|
||||||
|
132 => "utime",
|
||||||
|
133 => "mknod",
|
||||||
|
134 => "uselib",
|
||||||
|
135 => "personality",
|
||||||
|
136 => "ustat",
|
||||||
|
137 => "statfs",
|
||||||
|
138 => "fstatfs",
|
||||||
|
139 => "sysfs",
|
||||||
|
140 => "getpriority",
|
||||||
|
141 => "setpriority",
|
||||||
|
142 => "sched_setparam",
|
||||||
|
143 => "sched_getparam",
|
||||||
|
144 => "sched_setscheduler",
|
||||||
|
145 => "sched_getscheduler",
|
||||||
|
146 => "sched_get_priority_max",
|
||||||
|
147 => "sched_get_priority_min",
|
||||||
|
148 => "sched_rr_get_interval",
|
||||||
|
149 => "mlock",
|
||||||
|
150 => "munlock",
|
||||||
|
151 => "mlockall",
|
||||||
|
152 => "munlockall",
|
||||||
|
153 => "vhangup",
|
||||||
|
154 => "modify_ldt",
|
||||||
|
155 => "pivot_root",
|
||||||
|
156 => "_sysctl",
|
||||||
|
157 => "prctl",
|
||||||
|
158 => "arch_prctl",
|
||||||
|
159 => "adjtimex",
|
||||||
|
160 => "setrlimit",
|
||||||
|
161 => "chroot",
|
||||||
|
162 => "sync",
|
||||||
|
163 => "acct",
|
||||||
|
164 => "settimeofday",
|
||||||
|
165 => "mount",
|
||||||
|
166 => "umount2",
|
||||||
|
167 => "swapon",
|
||||||
|
168 => "swapoff",
|
||||||
|
169 => "reboot",
|
||||||
|
170 => "sethostname",
|
||||||
|
171 => "setdomainname",
|
||||||
|
172 => "iopl",
|
||||||
|
173 => "ioperm",
|
||||||
|
174 => "create_module",
|
||||||
|
175 => "init_module",
|
||||||
|
176 => "delete_module",
|
||||||
|
177 => "get_kernel_syms",
|
||||||
|
178 => "query_module",
|
||||||
|
179 => "quotactl",
|
||||||
|
180 => "nfsservctl",
|
||||||
|
181 => "getpmsg",
|
||||||
|
182 => "putpmsg",
|
||||||
|
183 => "afs_syscall",
|
||||||
|
184 => "tuxcall",
|
||||||
|
185 => "security",
|
||||||
|
186 => "gettid",
|
||||||
|
187 => "readahead",
|
||||||
|
188 => "setxattr",
|
||||||
|
189 => "lsetxattr",
|
||||||
|
190 => "fsetxattr",
|
||||||
|
191 => "getxattr",
|
||||||
|
192 => "lgetxattr",
|
||||||
|
193 => "fgetxattr",
|
||||||
|
194 => "listxattr",
|
||||||
|
195 => "llistxattr",
|
||||||
|
196 => "flistxattr",
|
||||||
|
197 => "removexattr",
|
||||||
|
198 => "lremovexattr",
|
||||||
|
199 => "fremovexattr",
|
||||||
|
200 => "tkill",
|
||||||
|
201 => "time",
|
||||||
|
202 => "futex",
|
||||||
|
203 => "sched_setaffinity",
|
||||||
|
204 => "sched_getaffinity",
|
||||||
|
205 => "set_thread_area",
|
||||||
|
206 => "io_setup",
|
||||||
|
207 => "io_destroy",
|
||||||
|
208 => "io_getevents",
|
||||||
|
209 => "io_submit",
|
||||||
|
210 => "io_cancel",
|
||||||
|
211 => "get_thread_area",
|
||||||
|
212 => "lookup_dcookie",
|
||||||
|
213 => "epoll_create",
|
||||||
|
214 => "epoll_ctl_old",
|
||||||
|
215 => "epoll_wait_old",
|
||||||
|
216 => "remap_file_pages",
|
||||||
|
217 => "getdents64",
|
||||||
|
218 => "set_tid_address",
|
||||||
|
219 => "restart_syscall",
|
||||||
|
220 => "semtimedop",
|
||||||
|
221 => "fadvise64",
|
||||||
|
222 => "timer_create",
|
||||||
|
223 => "timer_settime",
|
||||||
|
224 => "timer_gettime",
|
||||||
|
225 => "timer_getoverrun",
|
||||||
|
226 => "timer_delete",
|
||||||
|
227 => "clock_settime",
|
||||||
|
228 => "clock_gettime",
|
||||||
|
229 => "clock_getres",
|
||||||
|
230 => "clock_nanosleep",
|
||||||
|
231 => "exit_group",
|
||||||
|
232 => "epoll_wait",
|
||||||
|
233 => "epoll_ctl",
|
||||||
|
234 => "tgkill",
|
||||||
|
235 => "utimes",
|
||||||
|
236 => "vserver",
|
||||||
|
237 => "mbind",
|
||||||
|
238 => "set_mempolicy",
|
||||||
|
239 => "get_mempolicy",
|
||||||
|
240 => "mq_open",
|
||||||
|
241 => "mq_unlink",
|
||||||
|
242 => "mq_timedsend",
|
||||||
|
243 => "mq_timedreceive",
|
||||||
|
244 => "mq_notify",
|
||||||
|
245 => "mq_getsetattr",
|
||||||
|
246 => "kexec_load",
|
||||||
|
247 => "waitid",
|
||||||
|
248 => "add_key",
|
||||||
|
249 => "request_key",
|
||||||
|
250 => "keyctl",
|
||||||
|
251 => "ioprio_set",
|
||||||
|
252 => "ioprio_get",
|
||||||
|
253 => "inotify_init",
|
||||||
|
254 => "inotify_add_watch",
|
||||||
|
255 => "inotify_rm_watch",
|
||||||
|
256 => "migrate_pages",
|
||||||
|
257 => "openat",
|
||||||
|
258 => "mkdirat",
|
||||||
|
259 => "mknodat",
|
||||||
|
260 => "fchownat",
|
||||||
|
261 => "futimesat",
|
||||||
|
262 => "newfstatat",
|
||||||
|
263 => "unlinkat",
|
||||||
|
264 => "renameat",
|
||||||
|
265 => "linkat",
|
||||||
|
266 => "symlinkat",
|
||||||
|
267 => "readlinkat",
|
||||||
|
268 => "fchmodat",
|
||||||
|
269 => "faccessat",
|
||||||
|
270 => "pselect6",
|
||||||
|
271 => "ppoll",
|
||||||
|
272 => "unshare",
|
||||||
|
273 => "set_robust_list",
|
||||||
|
274 => "get_robust_list",
|
||||||
|
275 => "splice",
|
||||||
|
276 => "tee",
|
||||||
|
277 => "sync_file_range",
|
||||||
|
278 => "vmsplice",
|
||||||
|
279 => "move_pages",
|
||||||
|
280 => "utimensat",
|
||||||
|
281 => "epoll_pwait",
|
||||||
|
282 => "signalfd",
|
||||||
|
283 => "timerfd_create",
|
||||||
|
284 => "eventfd",
|
||||||
|
285 => "fallocate",
|
||||||
|
286 => "timerfd_settime",
|
||||||
|
287 => "timerfd_gettime",
|
||||||
|
288 => "accept4",
|
||||||
|
289 => "signalfd4",
|
||||||
|
290 => "eventfd2",
|
||||||
|
291 => "epoll_create1",
|
||||||
|
292 => "dup3",
|
||||||
|
293 => "pipe2",
|
||||||
|
294 => "inotify_init1",
|
||||||
|
295 => "preadv",
|
||||||
|
296 => "pwritev",
|
||||||
|
297 => "rt_tgsigqueueinfo",
|
||||||
|
298 => "perf_event_open",
|
||||||
|
299 => "recvmmsg",
|
||||||
|
300 => "fanotify_init",
|
||||||
|
301 => "fanotify_mark",
|
||||||
|
302 => "prlimit64",
|
||||||
|
303 => "name_to_handle_at",
|
||||||
|
304 => "open_by_handle_at",
|
||||||
|
305 => "clock_adjtime",
|
||||||
|
306 => "syncfs",
|
||||||
|
307 => "sendmmsg",
|
||||||
|
308 => "setns",
|
||||||
|
309 => "getcpu",
|
||||||
|
310 => "process_vm_readv",
|
||||||
|
311 => "process_vm_writev",
|
||||||
|
312 => "kcmp",
|
||||||
|
313 => "finit_module",
|
||||||
|
314 => "sched_setattr",
|
||||||
|
315 => "sched_getattr",
|
||||||
|
316 => "renameat2",
|
||||||
|
317 => "seccomp",
|
||||||
|
318 => "getrandom",
|
||||||
|
319 => "memfd_create",
|
||||||
|
320 => "kexec_file_load",
|
||||||
|
321 => "bpf",
|
||||||
|
322 => "execveat",
|
||||||
|
323 => "userfaultfd",
|
||||||
|
324 => "membarrier",
|
||||||
|
325 => "mlock2",
|
||||||
|
326 => "copy_file_range",
|
||||||
|
327 => "preadv2",
|
||||||
|
328 => "pwritev2",
|
||||||
|
329 => "pkey_mprotect",
|
||||||
|
330 => "pkey_alloc",
|
||||||
|
331 => "pkey_free",
|
||||||
|
332 => "statx",
|
||||||
|
333 => "io_pgetevents",
|
||||||
|
334 => "rseq",
|
||||||
|
424 => "pidfd_send_signal",
|
||||||
|
425 => "io_uring_setup",
|
||||||
|
426 => "io_uring_enter",
|
||||||
|
427 => "io_uring_register",
|
||||||
|
428 => "open_tree",
|
||||||
|
429 => "move_mount",
|
||||||
|
430 => "fsopen",
|
||||||
|
431 => "fsconfig",
|
||||||
|
432 => "fsmount",
|
||||||
|
433 => "fspick",
|
||||||
|
434 => "pidfd_open",
|
||||||
|
435 => "clone3",
|
||||||
|
436 => "close_range",
|
||||||
|
437 => "openat2",
|
||||||
|
438 => "pidfd_getfd",
|
||||||
|
439 => "faccessat2",
|
||||||
|
440 => "process_madvise",
|
||||||
|
441 => "epoll_pwait2",
|
||||||
|
442 => "mount_setattr",
|
||||||
|
443 => "quotactl_fd",
|
||||||
|
444 => "landlock_create_ruleset",
|
||||||
|
445 => "landlock_add_rule",
|
||||||
|
446 => "landlock_restrict_self",
|
||||||
|
447 => "memfd_secret",
|
||||||
|
448 => "process_mrelease",
|
||||||
|
449 => "futex_waitv",
|
||||||
|
450 => "set_mempolicy_home_node",
|
||||||
|
451 => "cachestat",
|
||||||
|
452 => "fchmodat2",
|
||||||
|
453 => "map_shadow_stack",
|
||||||
|
454 => "futex_wake",
|
||||||
|
455 => "futex_wait",
|
||||||
|
456 => "futex_requeue",
|
||||||
|
_ => "UNKNOWN",
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue