在进行漏洞利用时,免不了要做系统调用。X86平台上,Linux在用int 0x80进行系统调用时,调用号存在于EAX中,第一个参数存在于EBX,第二个参数存在于ECX,第三个参数存在于EDX。
调用号如下:
%eax | Name | Source | %ebx | %ecx | %edx | %esx | %edi |
1 | sys_exit | kernel/exit.c | int | - | - | - | - |
2 | sys_fork | arch/i386/kernel/process.c | - | - | - | - | |
3 | sys_read | fs/read_write.c | unsigned int | char * | - | - | |
4 | sys_write | fs/read_write.c | unsigned int | const char * | - | - | |
5 | sys_open | fs/open.c | const char * | int | int | - | - |
6 | sys_close | fs/open.c | unsigned int | - | - | - | - |
7 | sys_waitpid | kernel/exit.c | pid_t | unsigned int * | int | - | - |
8 | sys_creat | fs/open.c | const char * | int | - | - | - |
9 | sys_link | fs/namei.c | const char * | const char * | - | - | - |
10 | sys_unlink | fs/namei.c | const char * | - | - | - | - |
11 | sys_execve | arch/i386/kernel/process.c | - | - | - | - | |
12 | sys_chdir | fs/open.c | const char * | - | - | - | - |
13 | sys_time | kernel/time.c | int * | - | - | - | - |
14 | sys_mknod | fs/namei.c | const char * | int | - | - | |
15 | sys_chmod | fs/open.c | const char * | - | - | - | |
16 | sys_lchown | fs/open.c | const char * | - | - | ||
18 | sys_stat | fs/stat.c | char * | - | - | - | |
19 | sys_lseek | fs/read_write.c | unsigned int | unsigned int | - | - | |
20 | sys_getpid | kernel/sched.c | - | - | - | - | - |
21 | sys_mount | fs/super.c | char * | char * | char * | - | - |
22 | sys_oldumount | fs/super.c | char * | - | - | - | - |
23 | sys_setuid | kernel/sys.c | - | - | - | - | |
24 | sys_getuid | kernel/sched.c | - | - | - | - | - |
25 | sys_stime | kernel/time.c | int * | - | - | - | - |
26 | sys_ptrace | arch/i386/kernel/ptrace.c | long | long | long | long | - |
27 | sys_alarm | kernel/sched.c | unsigned int | - | - | - | - |
28 | sys_fstat | fs/stat.c | unsigned int | - | - | - | |
29 | sys_pause | arch/i386/kernel/sys_i386.c | - | - | - | - | - |
30 | sys_utime | fs/open.c | char * | - | - | - | |
33 | sys_access | fs/open.c | const char * | int | - | - | - |
34 | sys_nice | kernel/sched.c | int | - | - | - | - |
36 | sys_sync | fs/buffer.c | - | - | - | - | - |
37 | sys_kill | kernel/signal.c | int | int | - | - | - |
38 | sys_rename | fs/namei.c | const char * | const char * | - | - | - |
39 | sys_mkdir | fs/namei.c | const char * | int | - | - | - |
40 | sys_rmdir | fs/namei.c | const char * | - | - | - | - |
41 | sys_dup | fs/fcntl.c | unsigned int | - | - | - | - |
42 | sys_pipe | arch/i386/kernel/sys_i386.c | unsigned long * | - | - | - | - |
43 | sys_times | kernel/sys.c | - | - | - | - | |
45 | sys_brk | mm/mmap.c | unsigned long | - | - | - | - |
46 | sys_setgid | kernel/sys.c | - | - | - | - | |
47 | sys_getgid | kernel/sched.c | - | - | - | - | - |
48 | sys_signal | kernel/signal.c | int | - | - | - | |
49 | sys_geteuid | kernel/sched.c | - | - | - | - | - |
50 | sys_getegid | kernel/sched.c | - | - | - | - | - |
51 | sys_acct | kernel/acct.c | const char * | - | - | - | - |
52 | sys_umount | fs/super.c | char * | int | - | - | - |
54 | sys_ioctl | fs/ioctl.c | unsigned int | unsigned int | unsigned long | - | - |
55 | sys_fcntl | fs/fcntl.c | unsigned int | unsigned int | unsigned long | - | - |
57 | sys_setpgid | kernel/sys.c | - | - | - | ||
59 | sys_olduname | arch/i386/kernel/sys_i386.c | - | - | - | - | |
60 | sys_umask | kernel/sys.c | int | - | - | - | - |
61 | sys_chroot | fs/open.c | const char * | - | - | - | - |
62 | sys_ustat | fs/super.c | - | - | - | ||
63 | sys_dup2 | fs/fcntl.c | unsigned int | unsigned int | - | - | - |
64 | sys_getppid | kernel/sched.c | - | - | - | - | - |
65 | sys_getpgrp | kernel/sys.c | - | - | - | - | - |
66 | sys_setsid | kernel/sys.c | - | - | - | - | - |
67 | sys_sigaction | arch/i386/kernel/signal.c | int | const struct old_sigaction * | - | - | |
68 | sys_sgetmask | kernel/signal.c | - | - | - | - | - |
69 | sys_ssetmask | kernel/signal.c | int | - | - | - | - |
70 | sys_setreuid | kernel/sys.c | - | - | - | ||
71 | sys_setregid | kernel/sys.c | - | - | - | ||
72 | sys_sigsuspend | arch/i386/kernel/signal.c | int | int | - | - | |
73 | sys_sigpending | kernel/signal.c | - | - | - | - | |
74 | sys_sethostname | kernel/sys.c | char * | int | - | - | - |
75 | sys_setrlimit | kernel/sys.c | unsigned int | - | - | - | |
76 | sys_getrlimit | kernel/sys.c | unsigned int | - | - | - | |
77 | sys_getrusage | kernel/sys.c | int | - | - | - | |
78 | sys_gettimeofday | kernel/time.c | - | - | - | ||
79 | sys_settimeofday | kernel/time.c | - | - | - | ||
80 | sys_getgroups | kernel/sys.c | int | - | - | - | |
81 | sys_setgroups | kernel/sys.c | int | - | - | - | |
82 | old_select | arch/i386/kernel/sys_i386.c | - | - | - | - | |
83 | sys_symlink | fs/namei.c | const char * | const char * | - | - | - |
84 | sys_lstat | fs/stat.c | char * | - | - | - | |
85 | sys_readlink | fs/stat.c | const char * | char * | int | - | - |
86 | sys_uselib | fs/exec.c | const char * | - | - | - | - |
87 | sys_swapon | mm/swapfile.c | const char * | int | - | - | - |
88 | sys_reboot | kernel/sys.c | int | int | int | void * | - |
89 | old_readdir | fs/readdir.c | unsigned int | void * | unsigned int | - | - |
90 | old_mmap | arch/i386/kernel/sys_i386.c | - | - | - | - | |
91 | sys_munmap | mm/mmap.c | unsigned long | - | - | - | |
92 | sys_truncate | fs/open.c | const char * | unsigned long | - | - | - |
93 | sys_ftruncate | fs/open.c | unsigned int | unsigned long | - | - | - |
94 | sys_fchmod | fs/open.c | unsigned int | - | - | - | |
95 | sys_fchown | fs/open.c | unsigned int | - | - | ||
96 | sys_getpriority | kernel/sys.c | int | int | - | - | - |
97 | sys_setpriority | kernel/sys.c | int | int | int | - | - |
99 | sys_statfs | fs/open.c | const char * | - | - | - | |
100 | sys_fstatfs | fs/open.c | unsigned int | - | - | - | |
101 | sys_ioperm | arch/i386/kernel/ioport.c | unsigned long | unsigned long | int | - | - |
102 | sys_socketcall | net/socket.c | int | unsigned long * | - | - | - |
103 | sys_syslog | kernel/printk.c | int | char * | int | - | - |
104 | sys_setitimer | kernel/itimer.c | int | - | - | ||
105 | sys_getitimer | kernel/itimer.c | int | - | - | - | |
106 | sys_newstat | fs/stat.c | char * | - | - | - | |
107 | sys_newlstat | fs/stat.c | char * | - | - | - | |
108 | sys_newfstat | fs/stat.c | unsigned int | - | - | - | |
109 | sys_uname | arch/i386/kernel/sys_i386.c | - | - | - | - | |
110 | sys_iopl | arch/i386/kernel/ioport.c | unsigned long | - | - | - | - |
111 | sys_vhangup | fs/open.c | - | - | - | - | - |
112 | sys_idle | arch/i386/kernel/process.c | - | - | - | - | - |
113 | sys_vm86old | arch/i386/kernel/vm86.c | unsigned long | - | - | - | |
114 | sys_wait4 | kernel/exit.c | unsigned long * | int options | - | ||
115 | sys_swapoff | mm/swapfile.c | const char * | - | - | - | - |
116 | sys_sysinfo | kernel/info.c | - | - | - | - | |
117 | sys_ipc (*Note) | arch/i386/kernel/sys_i386.c | int | int | int | void * | |
118 | sys_fsync | fs/buffer.c | unsigned int | - | - | - | - |
119 | sys_sigreturn | arch/i386/kernel/signal.c | unsigned long | - | - | - | - |
120 | sys_clone | arch/i386/kernel/process.c | - | - | - | - | |
121 | sys_setdomainname | kernel/sys.c | char * | int | - | - | - |
122 | sys_newuname | kernel/sys.c | - | - | - | - | |
123 | sys_modify_ldt | arch/i386/kernel/ldt.c | int | void * | unsigned long | - | - |
124 | sys_adjtimex | kernel/time.c | - | - | - | - | |
125 | sys_mprotect | mm/mprotect.c | unsigned long | unsigned long | - | - | |
126 | sys_sigprocmask | kernel/signal.c | int | - | - | ||
127 | sys_create_module | kernel/module.c | const char * | - | - | - | |
128 | sys_init_module | kernel/module.c | const char * | - | - | - | |
129 | sys_delete_module | kernel/module.c | const char * | - | - | - | - |
130 | sys_get_kernel_syms | kernel/module.c | - | - | - | - | |
131 | sys_quotactl | fs/dquot.c | int | const char * | int | - | |
132 | sys_getpgid | kernel/sys.c | - | - | - | - | |
133 | sys_fchdir | fs/open.c | unsigned int | - | - | - | - |
134 | sys_bdflush | fs/buffer.c | int | long | - | - | - |
135 | sys_sysfs | fs/super.c | int | unsigned long | unsigned long | - | - |
136 | sys_personality | kernel/exec_domain.c | unsigned long | - | - | - | - |
138 | sys_setfsuid | kernel/sys.c | - | - | - | - | |
139 | sys_setfsgid | kernel/sys.c | - | - | - | - | |
140 | sys_llseek | fs/read_write.c | unsigned int | unsigned long | unsigned long | unsigned int | |
141 | sys_getdents | fs/readdir.c | unsigned int | void * | unsigned int | - | - |
142 | sys_select | fs/select.c | int | ||||
143 | sys_flock | fs/locks.c | unsigned int | unsigned int | - | - | - |
144 | sys_msync | mm/filemap.c | unsigned long | int | - | - | |
145 | sys_readv | fs/read_write.c | unsigned long | unsigned long | - | - | |
146 | sys_writev | fs/read_write.c | unsigned long | unsigned long | - | - | |
147 | sys_getsid | kernel/sys.c | - | - | - | - | |
148 | sys_fdatasync | fs/buffer.c | unsigned int | - | - | - | - |
149 | sys_sysctl | kernel/sysctl.c | - | - | - | - | |
150 | sys_mlock | mm/mlock.c | unsigned long | - | - | - | |
151 | sys_munlock | mm/mlock.c | unsigned long | - | - | - | |
152 | sys_mlockall | mm/mlock.c | int | - | - | - | - |
153 | sys_munlockall | mm/mlock.c | - | - | - | - | - |
154 | sys_sched_setparam | kernel/sched.c | - | - | - | ||
155 | sys_sched_getparam | kernel/sched.c | - | - | - | ||
156 | sys_sched_setscheduler | kernel/sched.c | int | - | - | ||
157 | sys_sched_getscheduler | kernel/sched.c | - | - | - | - | |
158 | sys_sched_yield | kernel/sched.c | - | - | - | - | - |
159 | sys_sched_get_priority_max | kernel/sched.c | int | - | - | - | - |
160 | sys_sched_get_priority_min | kernel/sched.c | int | - | - | - | - |
161 | sys_sched_rr_get_interval | kernel/sched.c | - | - | - | ||
162 | sys_nanosleep | kernel/sched.c | - | - | - | ||
163 | sys_mremap | mm/mremap.c | unsigned long | unsigned long | unsigned long | unsigned long | - |
164 | sys_setresuid | kernel/sys.c | - | - | |||
165 | sys_getresuid | kernel/sys.c | - | - | |||
166 | sys_vm86 | arch/i386/kernel/vm86.c | - | - | - | - | |
167 | sys_query_module | kernel/module.c | const char * | int | char * | ||
168 | sys_poll | fs/select.c | unsigned int | long | - | - | |
169 | sys_nfsservctl | fs/filesystems.c | int | void * | void * | - | - |
170 | sys_setresgid | kernel/sys.c | - | - | |||
171 | sys_getresgid | kernel/sys.c | - | - | |||
172 | sys_prctl | kernel/sys.c | int | unsigned long | unsigned long | unsigned long | unsigned long |
173 | sys_rt_sigreturn | arch/i386/kernel/signal.c | unsigned long | - | - | - | - |
174 | sys_rt_sigaction | kernel/signal.c | int | - | |||
175 | sys_rt_sigprocmask | kernel/signal.c | int | - | |||
176 | sys_rt_sigpending | kernel/signal.c | - | - | - | ||
177 | sys_rt_sigtimedwait | kernel/signal.c | - | ||||
178 | sys_rt_sigqueueinfo | kernel/signal.c | int | int | - | - | |
179 | sys_rt_sigsuspend | arch/i386/kernel/signal.c | - | - | - | ||
180 | sys_pread | fs/read_write.c | unsigned int | char * | - | ||
181 | sys_pwrite | fs/read_write.c | unsigned int | const char * | - | ||
182 | sys_chown | fs/open.c | const char * | - | - | ||
183 | sys_getcwd | fs/dcache.c | char * | unsigned long | - | - | - |
184 | sys_capget | kernel/capability.c | - | - | - | ||
185 | sys_capset | kernel/capability.c | - | - | - | ||
186 | sys_sigaltstack | arch/i386/kernel/signal.c | - | - | - | ||
187 | sys_sendfile | mm/filemap.c | int | int | - | ||
190 | sys_vfork | arch/i386/kernel/process.c | - | - |