seccomp-tools 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +84 -17
- data/bin/seccomp-tools +1 -0
- data/ext/ptrace/ptrace.c +8 -1
- data/lib/seccomp-tools.rb +2 -0
- data/lib/seccomp-tools/asm/asm.rb +4 -1
- data/lib/seccomp-tools/asm/compiler.rb +61 -10
- data/lib/seccomp-tools/asm/tokenizer.rb +15 -3
- data/lib/seccomp-tools/bpf.rb +2 -0
- data/lib/seccomp-tools/cli/asm.rb +14 -4
- data/lib/seccomp-tools/cli/base.rb +5 -0
- data/lib/seccomp-tools/cli/cli.rb +6 -3
- data/lib/seccomp-tools/cli/disasm.rb +5 -1
- data/lib/seccomp-tools/cli/dump.rb +4 -1
- data/lib/seccomp-tools/cli/emu.rb +15 -2
- data/lib/seccomp-tools/const.rb +25 -19
- data/lib/seccomp-tools/consts/sys_arg.rb +432 -0
- data/lib/seccomp-tools/consts/{amd64.rb → sys_nr/amd64.rb} +4 -2
- data/lib/seccomp-tools/consts/{i386.rb → sys_nr/i386.rb} +5 -2
- data/lib/seccomp-tools/disasm/context.rb +125 -34
- data/lib/seccomp-tools/disasm/disasm.rb +4 -2
- data/lib/seccomp-tools/dumper.rb +4 -0
- data/lib/seccomp-tools/emulator.rb +10 -0
- data/lib/seccomp-tools/instruction/alu.rb +6 -1
- data/lib/seccomp-tools/instruction/base.rb +4 -2
- data/lib/seccomp-tools/instruction/instruction.rb +2 -0
- data/lib/seccomp-tools/instruction/jmp.rb +12 -2
- data/lib/seccomp-tools/instruction/ld.rb +27 -11
- data/lib/seccomp-tools/instruction/ldx.rb +2 -0
- data/lib/seccomp-tools/instruction/misc.rb +2 -0
- data/lib/seccomp-tools/instruction/ret.rb +3 -0
- data/lib/seccomp-tools/instruction/st.rb +3 -1
- data/lib/seccomp-tools/instruction/stx.rb +2 -0
- data/lib/seccomp-tools/syscall.rb +5 -1
- data/lib/seccomp-tools/templates/asm.amd64.asm +26 -0
- data/lib/seccomp-tools/templates/asm.c +17 -0
- data/lib/seccomp-tools/templates/asm.i386.asm +33 -0
- data/lib/seccomp-tools/util.rb +16 -1
- data/lib/seccomp-tools/version.rb +3 -1
- metadata +18 -11
data/lib/seccomp-tools/bpf.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'seccomp-tools/cli/base'
|
2
4
|
require 'seccomp-tools/asm/asm'
|
3
5
|
|
@@ -6,7 +8,7 @@ module SeccompTools
|
|
6
8
|
# Handle 'asm' command.
|
7
9
|
class Asm < Base
|
8
10
|
# Summary of this command.
|
9
|
-
SUMMARY = 'Seccomp bpf assembler.'
|
11
|
+
SUMMARY = 'Seccomp bpf assembler.'
|
10
12
|
# Usage of this command.
|
11
13
|
USAGE = ('asm - ' + SUMMARY + "\n\n" + 'Usage: seccomp-tools asm IN_FILE [options]').freeze
|
12
14
|
|
@@ -24,8 +26,8 @@ module SeccompTools
|
|
24
26
|
option[:ofile] = o
|
25
27
|
end
|
26
28
|
|
27
|
-
opt.on('-f', '--format FORMAT', %i[inspect raw carray],
|
28
|
-
'Output format. FORMAT can only be one of <inspect|raw|
|
29
|
+
opt.on('-f', '--format FORMAT', %i[inspect raw c_array carray c_source assembly],
|
30
|
+
'Output format. FORMAT can only be one of <inspect|raw|c_array|c_source|assembly>.',
|
29
31
|
'Default: inspect') do |f|
|
30
32
|
option[:format] = f
|
31
33
|
end
|
@@ -38,14 +40,22 @@ module SeccompTools
|
|
38
40
|
# @return [void]
|
39
41
|
def handle
|
40
42
|
return unless super
|
43
|
+
|
41
44
|
option[:ifile] = argv.shift
|
42
45
|
return CLI.show(parser.help) if option[:ifile].nil?
|
46
|
+
|
43
47
|
res = SeccompTools::Asm.asm(input, arch: option[:arch])
|
44
48
|
output do
|
45
49
|
case option[:format]
|
46
50
|
when :inspect then res.inspect + "\n"
|
47
51
|
when :raw then res
|
48
|
-
when :carray then "unsigned char bpf[] = {#{res.bytes.join(',')}};\n"
|
52
|
+
when :c_array, :carray then "unsigned char bpf[] = {#{res.bytes.join(',')}};\n"
|
53
|
+
when :c_source then SeccompTools::Util.template('asm.c').sub('<TO_BE_REPLACED>', res.bytes.join(','))
|
54
|
+
when :assembly then SeccompTools::Util.template("asm.#{option[:arch]}.asm")
|
55
|
+
.sub(
|
56
|
+
'<TO_BE_REPLACED>',
|
57
|
+
res.bytes.map { |b| format('\\\%03o', b) }.join
|
58
|
+
)
|
49
59
|
end
|
50
60
|
end
|
51
61
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'optparse'
|
2
4
|
|
3
5
|
require 'seccomp-tools/util'
|
@@ -26,7 +28,9 @@ module SeccompTools
|
|
26
28
|
# For decestors to check if need to continue.
|
27
29
|
def handle
|
28
30
|
return CLI.show(parser.help) if argv.empty? || %w[-h --help].any? { |h| argv.include?(h) }
|
31
|
+
|
29
32
|
parser.parse!(argv)
|
33
|
+
option[:arch] ||= Util.system_arch
|
30
34
|
true
|
31
35
|
end
|
32
36
|
|
@@ -45,6 +49,7 @@ module SeccompTools
|
|
45
49
|
def output
|
46
50
|
# if file name not present, just output to stdout.
|
47
51
|
return $stdout.write(yield) if option[:ofile].nil?
|
52
|
+
|
48
53
|
# times of calling output
|
49
54
|
@serial ||= 0
|
50
55
|
# Write to file, we should disable colorize
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'seccomp-tools/cli/asm'
|
2
4
|
require 'seccomp-tools/cli/disasm'
|
3
5
|
require 'seccomp-tools/cli/dump'
|
@@ -28,14 +30,14 @@ EOS
|
|
28
30
|
|
29
31
|
module_function
|
30
32
|
|
31
|
-
# Main
|
33
|
+
# Main working method of CLI.
|
32
34
|
# @param [Array<String>] argv
|
33
35
|
# Command line arguments.
|
34
36
|
# @return [void]
|
35
37
|
# @example
|
36
|
-
# work(
|
38
|
+
# work(%w[--help])
|
37
39
|
# #=> # usage message
|
38
|
-
# work(
|
40
|
+
# work(%w[--version])
|
39
41
|
# #=> # version message
|
40
42
|
def work(argv)
|
41
43
|
# all -h equivalent to --help
|
@@ -51,6 +53,7 @@ EOS
|
|
51
53
|
cmd = argv.shift
|
52
54
|
argv = %w[--help] if preoption.include?('--help')
|
53
55
|
return show(invalid(cmd)) if COMMANDS[cmd].nil?
|
56
|
+
|
54
57
|
COMMANDS[cmd].new(argv).handle
|
55
58
|
end
|
56
59
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'seccomp-tools/cli/base'
|
2
4
|
require 'seccomp-tools/disasm/disasm'
|
3
5
|
|
@@ -6,7 +8,7 @@ module SeccompTools
|
|
6
8
|
# Handle 'disasm' command.
|
7
9
|
class Disasm < Base
|
8
10
|
# Summary of this command.
|
9
|
-
SUMMARY = 'Disassemble seccomp bpf.'
|
11
|
+
SUMMARY = 'Disassemble seccomp bpf.'
|
10
12
|
# Usage of this command.
|
11
13
|
USAGE = ('disasm - ' + SUMMARY + "\n\n" + 'Usage: seccomp-tools disasm BPF_FILE [options]').freeze
|
12
14
|
|
@@ -27,8 +29,10 @@ module SeccompTools
|
|
27
29
|
# @return [void]
|
28
30
|
def handle
|
29
31
|
return unless super
|
32
|
+
|
30
33
|
option[:ifile] = argv.shift
|
31
34
|
return CLI.show(parser.help) if option[:ifile].nil?
|
35
|
+
|
32
36
|
output { SeccompTools::Disasm.disasm(input, arch: option[:arch]) }
|
33
37
|
end
|
34
38
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'seccomp-tools/cli/base'
|
2
4
|
require 'seccomp-tools/disasm/disasm'
|
3
5
|
require 'seccomp-tools/dumper'
|
@@ -7,7 +9,7 @@ module SeccompTools
|
|
7
9
|
# Handle 'dump' command.
|
8
10
|
class Dump < Base
|
9
11
|
# Summary of this command.
|
10
|
-
SUMMARY = 'Automatically dump seccomp bpf from execution file(s).'
|
12
|
+
SUMMARY = 'Automatically dump seccomp bpf from execution file(s).'
|
11
13
|
# Usage of this command.
|
12
14
|
USAGE = ('dump - ' + SUMMARY + "\n\n" + 'Usage: seccomp-tools dump [exec] [options]').freeze
|
13
15
|
|
@@ -53,6 +55,7 @@ module SeccompTools
|
|
53
55
|
# @return [void]
|
54
56
|
def handle
|
55
57
|
return unless super
|
58
|
+
|
56
59
|
option[:command] = argv.shift unless argv.empty?
|
57
60
|
SeccompTools::Dumper.dump('/bin/sh', '-c', option[:command], limit: option[:limit]) do |bpf, arch|
|
58
61
|
case option[:format]
|
@@ -1,6 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'set'
|
2
4
|
|
3
5
|
require 'seccomp-tools/cli/base'
|
6
|
+
require 'seccomp-tools/const'
|
4
7
|
require 'seccomp-tools/disasm/disasm'
|
5
8
|
require 'seccomp-tools/emulator'
|
6
9
|
require 'seccomp-tools/util'
|
@@ -10,7 +13,7 @@ module SeccompTools
|
|
10
13
|
# Handle 'emu' command.
|
11
14
|
class Emu < Base
|
12
15
|
# Summary of this command.
|
13
|
-
SUMMARY = 'Emulate seccomp rules.'
|
16
|
+
SUMMARY = 'Emulate seccomp rules.'
|
14
17
|
# Usage of this command.
|
15
18
|
USAGE = ('emu - ' +
|
16
19
|
SUMMARY +
|
@@ -40,12 +43,14 @@ module SeccompTools
|
|
40
43
|
# @return [void]
|
41
44
|
def handle
|
42
45
|
return unless super
|
46
|
+
|
43
47
|
option[:ifile] = argv.shift
|
44
48
|
return CLI.show(parser.help) if option[:ifile].nil?
|
49
|
+
|
45
50
|
raw = input
|
46
51
|
insts = SeccompTools::Disasm.to_bpf(raw, option[:arch]).map(&:inst)
|
47
52
|
sys, *args = argv
|
48
|
-
sys =
|
53
|
+
sys = evaluate_sys_nr(sys) if sys
|
49
54
|
args.map! { |v| Integer(v) }
|
50
55
|
trace = Set.new
|
51
56
|
res = SeccompTools::Emulator.new(insts, sys_nr: sys, args: args, arch: option[:arch]).run do |ctx|
|
@@ -65,6 +70,13 @@ module SeccompTools
|
|
65
70
|
|
66
71
|
private
|
67
72
|
|
73
|
+
# @param [String] str
|
74
|
+
# @return [Integer]
|
75
|
+
def evaluate_sys_nr(str)
|
76
|
+
consts = SeccompTools::Const::Syscall.const_get(option[:arch].to_s.upcase)
|
77
|
+
consts[str.to_sym] || Integer(str)
|
78
|
+
end
|
79
|
+
|
68
80
|
# output the path during emulation
|
69
81
|
# @param [Array<String>] disasm
|
70
82
|
# @param [Set] trace
|
@@ -75,6 +87,7 @@ module SeccompTools
|
|
75
87
|
disasm.each_with_index do |line, idx|
|
76
88
|
output do
|
77
89
|
next line if trace.member?(idx)
|
90
|
+
|
78
91
|
Util.colorize(line, t: :gray)
|
79
92
|
end
|
80
93
|
# Too much remain, omit them.
|
data/lib/seccomp-tools/const.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module SeccompTools
|
2
4
|
# Define constant values.
|
3
5
|
module Const
|
@@ -24,22 +26,22 @@ module SeccompTools
|
|
24
26
|
|
25
27
|
# bpf command classes
|
26
28
|
COMMAND = {
|
27
|
-
ld:
|
28
|
-
ldx:
|
29
|
-
st:
|
30
|
-
stx:
|
31
|
-
alu:
|
32
|
-
jmp:
|
33
|
-
ret:
|
29
|
+
ld: 0x0,
|
30
|
+
ldx: 0x1,
|
31
|
+
st: 0x2,
|
32
|
+
stx: 0x3,
|
33
|
+
alu: 0x4,
|
34
|
+
jmp: 0x5,
|
35
|
+
ret: 0x6,
|
34
36
|
misc: 0x7
|
35
37
|
}.freeze
|
36
38
|
|
37
39
|
# types in jmp command
|
38
40
|
JMP = {
|
39
|
-
ja:
|
40
|
-
jeq:
|
41
|
-
jgt:
|
42
|
-
jge:
|
41
|
+
ja: 0x00,
|
42
|
+
jeq: 0x10,
|
43
|
+
jgt: 0x20,
|
44
|
+
jge: 0x30,
|
43
45
|
jset: 0x40
|
44
46
|
}.freeze
|
45
47
|
|
@@ -53,12 +55,12 @@ module SeccompTools
|
|
53
55
|
# seccomp action values
|
54
56
|
ACTION = {
|
55
57
|
KILL_PROCESS: 0x80000000,
|
56
|
-
KILL_THREAD:
|
57
|
-
KILL:
|
58
|
-
TRAP:
|
59
|
-
ERRNO:
|
60
|
-
TRACE:
|
61
|
-
ALLOW:
|
58
|
+
KILL_THREAD: 0x00000000,
|
59
|
+
KILL: 0x00000000, # alias of KILL_THREAD
|
60
|
+
TRAP: 0x00030000,
|
61
|
+
ERRNO: 0x00050000,
|
62
|
+
TRACE: 0x7ff00000,
|
63
|
+
ALLOW: 0x7fff0000
|
62
64
|
}.freeze
|
63
65
|
|
64
66
|
# mode used in ld / ldx
|
@@ -77,7 +79,7 @@ module SeccompTools
|
|
77
79
|
sub: 0x10,
|
78
80
|
mul: 0x20,
|
79
81
|
div: 0x30,
|
80
|
-
or:
|
82
|
+
or: 0x40,
|
81
83
|
and: 0x50,
|
82
84
|
lsh: 0x60,
|
83
85
|
rsh: 0x70,
|
@@ -113,12 +115,16 @@ module SeccompTools
|
|
113
115
|
# @return [Object]
|
114
116
|
def load_const(cons)
|
115
117
|
arch = cons.to_s.downcase
|
116
|
-
filename = File.join(__dir__, 'consts', "#{arch}.rb")
|
118
|
+
filename = File.join(__dir__, 'consts', 'sys_nr', "#{arch}.rb")
|
117
119
|
return unless File.exist?(filename)
|
120
|
+
|
118
121
|
const_set(cons, instance_eval(IO.read(filename)))
|
119
122
|
end
|
120
123
|
end
|
121
124
|
|
125
|
+
# The argument names of all syscalls.
|
126
|
+
SYS_ARG = instance_eval(IO.read(File.join(__dir__, 'consts', 'sys_arg.rb'))).freeze
|
127
|
+
|
122
128
|
# Constants from https://github.com/torvalds/linux/blob/master/include/uapi/linux/audit.h.
|
123
129
|
module Audit
|
124
130
|
# AUDIT_ARCH_*
|
@@ -0,0 +1,432 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Generated by `bundle exec rake sys_arg`
|
4
|
+
|
5
|
+
{
|
6
|
+
io_setup: %w[nr_reqs ctx],
|
7
|
+
io_destroy: %w[ctx],
|
8
|
+
io_cancel: %w[ctx_id iocb result],
|
9
|
+
io_getevents: %w[ctx_id min_nr nr events timeout],
|
10
|
+
io_getevents_time32: %w[ctx_id min_nr nr events timeout],
|
11
|
+
io_pgetevents: %w[ctx_id min_nr nr events timeout sig],
|
12
|
+
io_pgetevents_time32: %w[ctx_id min_nr nr events timeout sig],
|
13
|
+
io_uring_setup: %w[entries p],
|
14
|
+
io_uring_enter: %w[fd to_submit min_complete flags sig sigsz],
|
15
|
+
io_uring_register: %w[fd op arg nr_args],
|
16
|
+
setxattr: %w[path name value size flags],
|
17
|
+
lsetxattr: %w[path name value size flags],
|
18
|
+
fsetxattr: %w[fd name value size flags],
|
19
|
+
getxattr: %w[path name value size],
|
20
|
+
lgetxattr: %w[path name value size],
|
21
|
+
fgetxattr: %w[fd name value size],
|
22
|
+
listxattr: %w[path list size],
|
23
|
+
llistxattr: %w[path list size],
|
24
|
+
flistxattr: %w[fd list size],
|
25
|
+
removexattr: %w[path name],
|
26
|
+
lremovexattr: %w[path name],
|
27
|
+
fremovexattr: %w[fd name],
|
28
|
+
getcwd: %w[buf size],
|
29
|
+
lookup_dcookie: %w[cookie64 buf len],
|
30
|
+
eventfd2: %w[count flags],
|
31
|
+
epoll_create1: %w[flags],
|
32
|
+
epoll_ctl: %w[epfd op fd event],
|
33
|
+
epoll_pwait: %w[epfd events maxevents timeout sigmask sigsetsize],
|
34
|
+
dup: %w[fildes],
|
35
|
+
dup3: %w[oldfd newfd flags],
|
36
|
+
fcntl: %w[fd cmd arg],
|
37
|
+
fcntl64: %w[fd cmd arg],
|
38
|
+
inotify_init1: %w[flags],
|
39
|
+
inotify_add_watch: %w[fd path mask],
|
40
|
+
inotify_rm_watch: %w[fd wd],
|
41
|
+
ioctl: %w[fd cmd arg],
|
42
|
+
ioprio_set: %w[which who ioprio],
|
43
|
+
ioprio_get: %w[which who],
|
44
|
+
flock: %w[fd cmd],
|
45
|
+
mknodat: %w[dfd filename mode dev],
|
46
|
+
mkdirat: %w[dfd pathname mode],
|
47
|
+
unlinkat: %w[dfd pathname flag],
|
48
|
+
symlinkat: %w[oldname newdfd newname],
|
49
|
+
linkat: %w[olddfd oldname newdfd newname flags],
|
50
|
+
renameat: %w[olddfd oldname newdfd newname],
|
51
|
+
umount: %w[name flags],
|
52
|
+
mount: %w[dev_name dir_name type flags data],
|
53
|
+
pivot_root: %w[new_root put_old],
|
54
|
+
statfs: %w[path buf],
|
55
|
+
statfs64: %w[path sz buf],
|
56
|
+
fstatfs: %w[fd buf],
|
57
|
+
fstatfs64: %w[fd sz buf],
|
58
|
+
truncate: %w[path length],
|
59
|
+
ftruncate: %w[fd length],
|
60
|
+
truncate64: %w[path length],
|
61
|
+
ftruncate64: %w[fd length],
|
62
|
+
fallocate: %w[fd mode offset len],
|
63
|
+
faccessat: %w[dfd filename mode],
|
64
|
+
chdir: %w[filename],
|
65
|
+
fchdir: %w[fd],
|
66
|
+
chroot: %w[filename],
|
67
|
+
fchmod: %w[fd mode],
|
68
|
+
fchmodat: %w[dfd filename mode],
|
69
|
+
fchownat: %w[dfd filename user group flag],
|
70
|
+
fchown: %w[fd user group],
|
71
|
+
openat: %w[dfd filename flags mode],
|
72
|
+
close: %w[fd],
|
73
|
+
vhangup: %w[],
|
74
|
+
pipe2: %w[fildes flags],
|
75
|
+
quotactl: %w[cmd special id addr],
|
76
|
+
getdents64: %w[fd dirent count],
|
77
|
+
llseek: %w[fd offset_high offset_low result whence],
|
78
|
+
lseek: %w[fd offset whence],
|
79
|
+
read: %w[fd buf count],
|
80
|
+
write: %w[fd buf count],
|
81
|
+
readv: %w[fd vec vlen],
|
82
|
+
writev: %w[fd vec vlen],
|
83
|
+
pread64: %w[fd buf count pos],
|
84
|
+
pwrite64: %w[fd buf count pos],
|
85
|
+
preadv: %w[fd vec vlen pos_l pos_h],
|
86
|
+
pwritev: %w[fd vec vlen pos_l pos_h],
|
87
|
+
sendfile64: %w[out_fd in_fd offset count],
|
88
|
+
signalfd4: %w[ufd user_mask sizemask flags],
|
89
|
+
vmsplice: %w[fd iov nr_segs flags],
|
90
|
+
splice: %w[fd_in off_in fd_out off_out len flags],
|
91
|
+
tee: %w[fdin fdout len flags],
|
92
|
+
readlinkat: %w[dfd path buf bufsiz],
|
93
|
+
newfstatat: %w[dfd filename statbuf flag],
|
94
|
+
newfstat: %w[fd statbuf],
|
95
|
+
fstat64: %w[fd statbuf],
|
96
|
+
fstatat64: %w[dfd filename statbuf flag],
|
97
|
+
sync: %w[],
|
98
|
+
fsync: %w[fd],
|
99
|
+
fdatasync: %w[fd],
|
100
|
+
sync_file_range2: %w[fd flags offset nbytes],
|
101
|
+
sync_file_range: %w[fd offset nbytes flags],
|
102
|
+
timerfd_create: %w[clockid flags],
|
103
|
+
timerfd_settime: %w[ufd flags utmr otmr],
|
104
|
+
timerfd_gettime: %w[ufd otmr],
|
105
|
+
timerfd_gettime32: %w[ufd otmr],
|
106
|
+
timerfd_settime32: %w[ufd flags utmr otmr],
|
107
|
+
utimensat: %w[dfd filename utimes flags],
|
108
|
+
utimensat_time32: %w[dfd filename t flags],
|
109
|
+
acct: %w[name],
|
110
|
+
capget: %w[header dataptr],
|
111
|
+
capset: %w[header data],
|
112
|
+
personality: %w[personality],
|
113
|
+
exit: %w[error_code],
|
114
|
+
exit_group: %w[error_code],
|
115
|
+
waitid: %w[which pid infop options ru],
|
116
|
+
set_tid_address: %w[tidptr],
|
117
|
+
unshare: %w[unshare_flags],
|
118
|
+
futex: %w[uaddr op val utime uaddr2 val3],
|
119
|
+
futex_time32: %w[uaddr op val utime uaddr2 val3],
|
120
|
+
get_robust_list: %w[pid head_ptr len_ptr],
|
121
|
+
set_robust_list: %w[head len],
|
122
|
+
nanosleep: %w[rqtp rmtp],
|
123
|
+
nanosleep_time32: %w[rqtp rmtp],
|
124
|
+
getitimer: %w[which value],
|
125
|
+
setitimer: %w[which value ovalue],
|
126
|
+
kexec_load: %w[entry nr_segments segments flags],
|
127
|
+
init_module: %w[umod len uargs],
|
128
|
+
delete_module: %w[name_user flags],
|
129
|
+
timer_create: %w[which_clock timer_event_spec created_timer_id],
|
130
|
+
timer_gettime: %w[timer_id setting],
|
131
|
+
timer_getoverrun: %w[timer_id],
|
132
|
+
timer_settime: %w[timer_id flags new_setting old_setting],
|
133
|
+
timer_delete: %w[timer_id],
|
134
|
+
clock_settime: %w[which_clock tp],
|
135
|
+
clock_gettime: %w[which_clock tp],
|
136
|
+
clock_getres: %w[which_clock tp],
|
137
|
+
clock_nanosleep: %w[which_clock flags rqtp rmtp],
|
138
|
+
timer_gettime32: %w[timer_id setting],
|
139
|
+
timer_settime32: %w[timer_id flags new old],
|
140
|
+
clock_settime32: %w[which_clock tp],
|
141
|
+
clock_gettime32: %w[which_clock tp],
|
142
|
+
clock_getres_time32: %w[which_clock tp],
|
143
|
+
clock_nanosleep_time32: %w[which_clock flags rqtp rmtp],
|
144
|
+
syslog: %w[type buf len],
|
145
|
+
ptrace: %w[request pid addr data],
|
146
|
+
sched_setparam: %w[pid param],
|
147
|
+
sched_setscheduler: %w[pid policy param],
|
148
|
+
sched_getscheduler: %w[pid],
|
149
|
+
sched_getparam: %w[pid param],
|
150
|
+
sched_setaffinity: %w[pid len user_mask_ptr],
|
151
|
+
sched_getaffinity: %w[pid len user_mask_ptr],
|
152
|
+
sched_yield: %w[],
|
153
|
+
sched_get_priority_max: %w[policy],
|
154
|
+
sched_get_priority_min: %w[policy],
|
155
|
+
sched_rr_get_interval: %w[pid interval],
|
156
|
+
sched_rr_get_interval_time32: %w[pid interval],
|
157
|
+
restart_syscall: %w[],
|
158
|
+
kill: %w[pid sig],
|
159
|
+
tkill: %w[pid sig],
|
160
|
+
tgkill: %w[tgid pid sig],
|
161
|
+
sigaltstack: %w[uss uoss],
|
162
|
+
rt_sigsuspend: %w[unewset sigsetsize],
|
163
|
+
rt_sigprocmask: %w[how set oset sigsetsize],
|
164
|
+
rt_sigpending: %w[set sigsetsize],
|
165
|
+
rt_sigtimedwait: %w[uthese uinfo uts sigsetsize],
|
166
|
+
rt_sigtimedwait_time32: %w[uthese uinfo uts sigsetsize],
|
167
|
+
rt_sigqueueinfo: %w[pid sig uinfo],
|
168
|
+
setpriority: %w[which who niceval],
|
169
|
+
getpriority: %w[which who],
|
170
|
+
reboot: %w[magic1 magic2 cmd arg],
|
171
|
+
setregid: %w[rgid egid],
|
172
|
+
setgid: %w[gid],
|
173
|
+
setreuid: %w[ruid euid],
|
174
|
+
setuid: %w[uid],
|
175
|
+
setresuid: %w[ruid euid suid],
|
176
|
+
getresuid: %w[ruid euid suid],
|
177
|
+
setresgid: %w[rgid egid sgid],
|
178
|
+
getresgid: %w[rgid egid sgid],
|
179
|
+
setfsuid: %w[uid],
|
180
|
+
setfsgid: %w[gid],
|
181
|
+
times: %w[tbuf],
|
182
|
+
setpgid: %w[pid pgid],
|
183
|
+
getpgid: %w[pid],
|
184
|
+
getsid: %w[pid],
|
185
|
+
setsid: %w[],
|
186
|
+
getgroups: %w[gidsetsize grouplist],
|
187
|
+
setgroups: %w[gidsetsize grouplist],
|
188
|
+
newuname: %w[name],
|
189
|
+
sethostname: %w[name len],
|
190
|
+
setdomainname: %w[name len],
|
191
|
+
getrlimit: %w[resource rlim],
|
192
|
+
setrlimit: %w[resource rlim],
|
193
|
+
getrusage: %w[who ru],
|
194
|
+
umask: %w[mask],
|
195
|
+
prctl: %w[option arg2 arg3 arg4 arg5],
|
196
|
+
getcpu: %w[cpu node cache],
|
197
|
+
gettimeofday: %w[tv tz],
|
198
|
+
settimeofday: %w[tv tz],
|
199
|
+
adjtimex: %w[txc_p],
|
200
|
+
adjtimex_time32: %w[txc_p],
|
201
|
+
getpid: %w[],
|
202
|
+
getppid: %w[],
|
203
|
+
getuid: %w[],
|
204
|
+
geteuid: %w[],
|
205
|
+
getgid: %w[],
|
206
|
+
getegid: %w[],
|
207
|
+
gettid: %w[],
|
208
|
+
sysinfo: %w[info],
|
209
|
+
mq_open: %w[name oflag mode attr],
|
210
|
+
mq_unlink: %w[name],
|
211
|
+
mq_timedsend: %w[mqdes msg_ptr msg_len msg_prio abs_timeout],
|
212
|
+
mq_timedreceive: %w[mqdes msg_ptr msg_len msg_prio abs_timeout],
|
213
|
+
mq_notify: %w[mqdes notification],
|
214
|
+
mq_getsetattr: %w[mqdes mqstat omqstat],
|
215
|
+
mq_timedreceive_time32: %w[mqdes u_msg_ptr msg_len u_msg_prio u_abs_timeout],
|
216
|
+
mq_timedsend_time32: %w[mqdes u_msg_ptr msg_len msg_prio u_abs_timeout],
|
217
|
+
msgget: %w[key msgflg],
|
218
|
+
old_msgctl: %w[msqid cmd buf],
|
219
|
+
msgctl: %w[msqid cmd buf],
|
220
|
+
msgrcv: %w[msqid msgp msgsz msgtyp msgflg],
|
221
|
+
msgsnd: %w[msqid msgp msgsz msgflg],
|
222
|
+
semget: %w[key nsems semflg],
|
223
|
+
semctl: %w[semid semnum cmd arg],
|
224
|
+
old_semctl: %w[semid semnum cmd arg],
|
225
|
+
semtimedop: %w[semid sops nsops timeout],
|
226
|
+
semtimedop_time32: %w[semid sops nsops timeout],
|
227
|
+
semop: %w[semid sops nsops],
|
228
|
+
shmget: %w[key size flag],
|
229
|
+
old_shmctl: %w[shmid cmd buf],
|
230
|
+
shmctl: %w[shmid cmd buf],
|
231
|
+
shmat: %w[shmid shmaddr shmflg],
|
232
|
+
shmdt: %w[shmaddr],
|
233
|
+
setsockopt: %w[fd level optname optval optlen],
|
234
|
+
getsockopt: %w[fd level optname optval optlen],
|
235
|
+
sendmsg: %w[fd msg flags],
|
236
|
+
recvmsg: %w[fd msg flags],
|
237
|
+
readahead: %w[fd offset count],
|
238
|
+
brk: %w[brk],
|
239
|
+
munmap: %w[addr len],
|
240
|
+
mremap: %w[addr old_len new_len flags new_addr],
|
241
|
+
add_key: %w[_type _description _payload plen destringid],
|
242
|
+
request_key: %w[_type _description _callout_info destringid],
|
243
|
+
keyctl: %w[cmd arg2 arg3 arg4 arg5],
|
244
|
+
execve: %w[filename argv envp],
|
245
|
+
fadvise64_64: %w[fd offset len advice],
|
246
|
+
swapon: %w[specialfile swap_flags],
|
247
|
+
swapoff: %w[specialfile],
|
248
|
+
mprotect: %w[start len prot],
|
249
|
+
msync: %w[start len flags],
|
250
|
+
mlock: %w[start len],
|
251
|
+
munlock: %w[start len],
|
252
|
+
mlockall: %w[flags],
|
253
|
+
munlockall: %w[],
|
254
|
+
mincore: %w[start len vec],
|
255
|
+
madvise: %w[start len behavior],
|
256
|
+
remap_file_pages: %w[start size prot pgoff flags],
|
257
|
+
mbind: %w[start len mode nmask maxnode flags],
|
258
|
+
get_mempolicy: %w[policy nmask maxnode addr flags],
|
259
|
+
set_mempolicy: %w[mode nmask maxnode],
|
260
|
+
migrate_pages: %w[pid maxnode from to],
|
261
|
+
move_pages: %w[pid nr_pages pages nodes status flags],
|
262
|
+
rt_tgsigqueueinfo: %w[tgid pid sig uinfo],
|
263
|
+
perf_event_open: %w[attr_uptr pid cpu group_fd flags],
|
264
|
+
recvmmsg: %w[fd msg vlen flags timeout],
|
265
|
+
recvmmsg_time32: %w[fd msg vlen flags timeout],
|
266
|
+
wait4: %w[pid stat_addr options ru],
|
267
|
+
prlimit64: %w[pid resource new_rlim old_rlim],
|
268
|
+
fanotify_init: %w[flags event_f_flags],
|
269
|
+
fanotify_mark: %w[fanotify_fd flags mask fd pathname],
|
270
|
+
name_to_handle_at: %w[dfd name handle mnt_id flag],
|
271
|
+
open_by_handle_at: %w[mountdirfd handle flags],
|
272
|
+
clock_adjtime: %w[which_clock tx],
|
273
|
+
clock_adjtime32: %w[which_clock tx],
|
274
|
+
syncfs: %w[fd],
|
275
|
+
setns: %w[fd nstype],
|
276
|
+
sendmmsg: %w[fd msg vlen flags],
|
277
|
+
process_vm_readv: %w[pid lvec liovcnt rvec riovcnt flags],
|
278
|
+
process_vm_writev: %w[pid lvec liovcnt rvec riovcnt flags],
|
279
|
+
kcmp: %w[pid1 pid2 type idx1 idx2],
|
280
|
+
finit_module: %w[fd uargs flags],
|
281
|
+
sched_setattr: %w[pid attr flags],
|
282
|
+
sched_getattr: %w[pid attr size flags],
|
283
|
+
renameat2: %w[olddfd oldname newdfd newname flags],
|
284
|
+
seccomp: %w[op flags uargs],
|
285
|
+
getrandom: %w[buf count flags],
|
286
|
+
memfd_create: %w[uname_ptr flags],
|
287
|
+
bpf: %w[cmd attr size],
|
288
|
+
execveat: %w[dfd filename argv envp flags],
|
289
|
+
userfaultfd: %w[flags],
|
290
|
+
membarrier: %w[cmd flags],
|
291
|
+
mlock2: %w[start len flags],
|
292
|
+
copy_file_range: %w[fd_in off_in fd_out off_out len flags],
|
293
|
+
preadv2: %w[fd vec vlen pos_l pos_h flags],
|
294
|
+
pwritev2: %w[fd vec vlen pos_l pos_h flags],
|
295
|
+
pkey_mprotect: %w[start len prot pkey],
|
296
|
+
pkey_alloc: %w[flags init_val],
|
297
|
+
pkey_free: %w[pkey],
|
298
|
+
statx: %w[dfd path flags mask buffer],
|
299
|
+
rseq: %w[rseq rseq_len flags sig],
|
300
|
+
open_tree: %w[dfd path flags],
|
301
|
+
move_mount: %w[from_dfd from_path to_dfd to_path ms_flags],
|
302
|
+
fsopen: %w[fs_name flags],
|
303
|
+
fsconfig: %w[fs_fd cmd key value aux],
|
304
|
+
fsmount: %w[fs_fd flags ms_flags],
|
305
|
+
fspick: %w[dfd path flags],
|
306
|
+
pidfd_send_signal: %w[pidfd sig info flags],
|
307
|
+
ioperm: %w[from num on],
|
308
|
+
pciconfig_read: %w[bus dfn off len buf],
|
309
|
+
pciconfig_write: %w[bus dfn off len buf],
|
310
|
+
pciconfig_iobase: %w[which bus devfn],
|
311
|
+
spu_run: %w[fd unpc ustatus],
|
312
|
+
spu_create: %w[name flags mode fd],
|
313
|
+
open: %w[filename flags mode],
|
314
|
+
link: %w[oldname newname],
|
315
|
+
unlink: %w[pathname],
|
316
|
+
mknod: %w[filename mode dev],
|
317
|
+
chmod: %w[filename mode],
|
318
|
+
chown: %w[filename user group],
|
319
|
+
mkdir: %w[pathname mode],
|
320
|
+
rmdir: %w[pathname],
|
321
|
+
lchown: %w[filename user group],
|
322
|
+
access: %w[filename mode],
|
323
|
+
rename: %w[oldname newname],
|
324
|
+
symlink: %w[old new],
|
325
|
+
stat64: %w[filename statbuf],
|
326
|
+
lstat64: %w[filename statbuf],
|
327
|
+
pipe: %w[fildes],
|
328
|
+
dup2: %w[oldfd newfd],
|
329
|
+
epoll_create: %w[size],
|
330
|
+
inotify_init: %w[],
|
331
|
+
eventfd: %w[count],
|
332
|
+
signalfd: %w[ufd user_mask sizemask],
|
333
|
+
sendfile: %w[out_fd in_fd offset count],
|
334
|
+
newstat: %w[filename statbuf],
|
335
|
+
newlstat: %w[filename statbuf],
|
336
|
+
fadvise64: %w[fd offset len advice],
|
337
|
+
alarm: %w[seconds],
|
338
|
+
getpgrp: %w[],
|
339
|
+
pause: %w[],
|
340
|
+
time: %w[tloc],
|
341
|
+
time32: %w[tloc],
|
342
|
+
utime: %w[filename times],
|
343
|
+
utimes: %w[filename utimes],
|
344
|
+
futimesat: %w[dfd filename utimes],
|
345
|
+
futimesat_time32: %w[dfd filename t],
|
346
|
+
utime32: %w[filename t],
|
347
|
+
utimes_time32: %w[filename t],
|
348
|
+
creat: %w[pathname mode],
|
349
|
+
getdents: %w[fd dirent count],
|
350
|
+
select: %w[n inp outp exp tvp],
|
351
|
+
poll: %w[ufds nfds timeout],
|
352
|
+
epoll_wait: %w[epfd events maxevents timeout],
|
353
|
+
ustat: %w[dev ubuf],
|
354
|
+
vfork: %w[],
|
355
|
+
bdflush: %w[func data],
|
356
|
+
oldumount: %w[name],
|
357
|
+
uselib: %w[library],
|
358
|
+
sysctl: %w[args],
|
359
|
+
sysfs: %w[option arg1 arg2],
|
360
|
+
fork: %w[],
|
361
|
+
stime: %w[tptr],
|
362
|
+
stime32: %w[tptr],
|
363
|
+
sigpending: %w[uset],
|
364
|
+
sigprocmask: %w[how set oset],
|
365
|
+
sgetmask: %w[],
|
366
|
+
ssetmask: %w[newmask],
|
367
|
+
signal: %w[sig handler],
|
368
|
+
nice: %w[increment],
|
369
|
+
kexec_file_load: %w[kernel_fd initrd_fd cmdline_len cmdline_ptr flags],
|
370
|
+
waitpid: %w[pid stat_addr options],
|
371
|
+
chown16: %w[filename user group],
|
372
|
+
lchown16: %w[filename user group],
|
373
|
+
fchown16: %w[fd user group],
|
374
|
+
setregid16: %w[rgid egid],
|
375
|
+
setgid16: %w[gid],
|
376
|
+
setreuid16: %w[ruid euid],
|
377
|
+
setuid16: %w[uid],
|
378
|
+
setresuid16: %w[ruid euid suid],
|
379
|
+
getresuid16: %w[ruid euid suid],
|
380
|
+
setresgid16: %w[rgid egid sgid],
|
381
|
+
getresgid16: %w[rgid egid sgid],
|
382
|
+
setfsuid16: %w[uid],
|
383
|
+
setfsgid16: %w[gid],
|
384
|
+
getgroups16: %w[gidsetsize grouplist],
|
385
|
+
setgroups16: %w[gidsetsize grouplist],
|
386
|
+
getuid16: %w[],
|
387
|
+
geteuid16: %w[],
|
388
|
+
getgid16: %w[],
|
389
|
+
getegid16: %w[],
|
390
|
+
socketcall: %w[call args],
|
391
|
+
stat: %w[filename statbuf],
|
392
|
+
lstat: %w[filename statbuf],
|
393
|
+
fstat: %w[fd statbuf],
|
394
|
+
readlink: %w[path buf bufsiz],
|
395
|
+
old_select: %w[arg],
|
396
|
+
gethostname: %w[name len],
|
397
|
+
old_getrlimit: %w[resource rlim],
|
398
|
+
ipc: %w[call first second third ptr fifth],
|
399
|
+
mmap_pgoff: %w[addr len prot flags fd pgoff],
|
400
|
+
old_mmap: %w[arg],
|
401
|
+
ni_syscall: %w[],
|
402
|
+
io_submit: %w[ctx_id nr iocbpp],
|
403
|
+
pselect6: %w[n inp outp exp tsp sig],
|
404
|
+
pselect6_time32: %w[n inp outp exp tsp sig],
|
405
|
+
ppoll: %w[ufds nfds tsp sigmask sigsetsize],
|
406
|
+
ppoll_time32: %w[ufds nfds tsp sigmask sigsetsize],
|
407
|
+
rt_sigaction: %w[sig act oact sigsetsize],
|
408
|
+
socket: %w[family type protocol],
|
409
|
+
socketpair: %w[family type protocol usockvec],
|
410
|
+
bind: %w[fd umyaddr addrlen],
|
411
|
+
listen: %w[fd backlog],
|
412
|
+
accept: %w[fd upeer_sockaddr upeer_addrlen],
|
413
|
+
connect: %w[fd uservaddr addrlen],
|
414
|
+
getsockname: %w[fd usockaddr usockaddr_len],
|
415
|
+
getpeername: %w[fd usockaddr usockaddr_len],
|
416
|
+
sendto: %w[fd buff len flags addr addrlen],
|
417
|
+
recvfrom: %w[fd ubuf len flags addr addrlen],
|
418
|
+
shutdown: %w[fd how],
|
419
|
+
clone: %w[clone_flags newsp parent_tidptr child_tidptr tls],
|
420
|
+
accept4: %w[fd upeer_sockaddr upeer_addrlen flags],
|
421
|
+
recv: %w[fd ubuf len flags],
|
422
|
+
send: %w[fd buff len flags],
|
423
|
+
sigaction: %w[sig act oact],
|
424
|
+
old_readdir: %w[fd dirent count],
|
425
|
+
uname: %w[name],
|
426
|
+
olduname: %w[name],
|
427
|
+
arch_prctl: %w[code addr],
|
428
|
+
mmap: %w[addr len prot flags fd pgoff],
|
429
|
+
_llseek: %w[fd offset_high offset_low result whence],
|
430
|
+
_sysctl: %w[args],
|
431
|
+
_newselect: %w[n inp outp exp tvp]
|
432
|
+
}
|