Linux系统调用号

在进行漏洞利用时,免不了要做系统调用。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

struct pt_regs

-

-

-

-

3

sys_read

fs/read_write.c

unsigned int

char *

size_t

-

-

4

sys_write

fs/read_write.c

unsigned int

const char *

size_t

-

-

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

struct pt_regs

-

-

-

-

12

sys_chdir

fs/open.c

const char *

-

-

-

-

13

sys_time

kernel/time.c

int *

-

-

-

-

14

sys_mknod

fs/namei.c

const char *

int

dev_t

-

-

15

sys_chmod

fs/open.c

const char *

mode_t

-

-

-

16

sys_lchown

fs/open.c

const char *

uid_t

gid_t

-

-

18

sys_stat

fs/stat.c

char *

struct __old_kernel_stat *

-

-

-

19

sys_lseek

fs/read_write.c

unsigned int

off_t

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

uid_t

-

-

-

-

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

struct __old_kernel_stat *

-

-

-

29

sys_pause

arch/i386/kernel/sys_i386.c

-

-

-

-

-

30

sys_utime

fs/open.c

char *

struct utimbuf *

-

-

-

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

struct tms *

-

-

-

-

45

sys_brk

mm/mmap.c

unsigned long

-

-

-

-

46

sys_setgid

kernel/sys.c

gid_t

-

-

-

-

47

sys_getgid

kernel/sched.c

-

-

-

-

-

48

sys_signal

kernel/signal.c

int

__sighandler_t

-

-

-

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

pid_t

pid_t

-

-

-

59

sys_olduname

arch/i386/kernel/sys_i386.c

struct oldold_utsname *

-

-

-

-

60

sys_umask

kernel/sys.c

int

-

-

-

-

61

sys_chroot

fs/open.c

const char *

-

-

-

-

62

sys_ustat

fs/super.c

dev_t

struct ustat *

-

-

-

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 *

struct old_sigaction *

-

-

68

sys_sgetmask

kernel/signal.c

-

-

-

-

-

69

sys_ssetmask

kernel/signal.c

int

-

-

-

-

70

sys_setreuid

kernel/sys.c

uid_t

uid_t

-

-

-

71

sys_setregid

kernel/sys.c

gid_t

gid_t

-

-

-

72

sys_sigsuspend

arch/i386/kernel/signal.c

int

int

old_sigset_t

-

-

73

sys_sigpending

kernel/signal.c

old_sigset_t *

-

-

-

-

74

sys_sethostname

kernel/sys.c

char *

int

-

-

-

75

sys_setrlimit

kernel/sys.c

unsigned int

struct rlimit *

-

-

-

76

sys_getrlimit

kernel/sys.c

unsigned int

struct rlimit *

-

-

-

77

sys_getrusage

kernel/sys.c

int

struct rusage *

-

-

-

78

sys_gettimeofday

kernel/time.c

struct timeval *

struct timezone *

-

-

-

79

sys_settimeofday

kernel/time.c

struct timeval *

struct timezone *

-

-

-

80

sys_getgroups

kernel/sys.c

int

gid_t *

-

-

-

81

sys_setgroups

kernel/sys.c

int

gid_t *

-

-

-

82

old_select

arch/i386/kernel/sys_i386.c

struct sel_arg_struct *

-

-

-

-

83

sys_symlink

fs/namei.c

const char *

const char *

-

-

-

84

sys_lstat

fs/stat.c

char *

struct __old_kernel_stat *

-

-

-

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

struct mmap_arg_struct *

-

-

-

-

91

sys_munmap

mm/mmap.c

unsigned long

size_t

-

-

-

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

mode_t

-

-

-

95

sys_fchown

fs/open.c

unsigned int

uid_t

gid_t

-

-

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 *

struct statfs *

-

-

-

100

sys_fstatfs

fs/open.c

unsigned int

struct statfs *

-

-

-

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

struct itimerval *

struct itimerval *

-

-

105

sys_getitimer

kernel/itimer.c

int

struct itimerval *

-

-

-

106

sys_newstat

fs/stat.c

char *

struct stat *

-

-

-

107

sys_newlstat

fs/stat.c

char *

struct stat *

-

-

-

108

sys_newfstat

fs/stat.c

unsigned int

struct stat *

-

-

-

109

sys_uname

arch/i386/kernel/sys_i386.c

struct old_utsname *

-

-

-

-

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

struct vm86plus_struct *

-

-

-

114

sys_wait4

kernel/exit.c

pid_t

unsigned long *

int options

struct rusage *

-

115

sys_swapoff

mm/swapfile.c

const char *

-

-

-

-

116

sys_sysinfo

kernel/info.c

struct sysinfo *

-

-

-

-

117

sys_ipc (*Note)

arch/i386/kernel/sys_i386.c

uint

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

struct pt_regs

-

-

-

-

121

sys_setdomainname

kernel/sys.c

char *

int

-

-

-

122

sys_newuname

kernel/sys.c

struct new_utsname *

-

-

-

-

123

sys_modify_ldt

arch/i386/kernel/ldt.c

int

void *

unsigned long

-

-

124

sys_adjtimex

kernel/time.c

struct timex *

-

-

-

-

125

sys_mprotect

mm/mprotect.c

unsigned long

size_t

unsigned long

-

-

126

sys_sigprocmask

kernel/signal.c

int

old_sigset_t *

old_sigset_t *

-

-

127

sys_create_module

kernel/module.c

const char *

size_t

-

-

-

128

sys_init_module

kernel/module.c

const char *

struct module *

-

-

-

129

sys_delete_module

kernel/module.c

const char *

-

-

-

-

130

sys_get_kernel_syms

kernel/module.c

struct kernel_sym *

-

-

-

-

131

sys_quotactl

fs/dquot.c

int

const char *

int

caddr_t

-

132

sys_getpgid

kernel/sys.c

pid_t

-

-

-

-

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

uid_t

-

-

-

-

139

sys_setfsgid

kernel/sys.c

gid_t

-

-

-

-

140

sys_llseek

fs/read_write.c

unsigned int

unsigned long

unsigned long

loff_t *

unsigned int

141

sys_getdents

fs/readdir.c

unsigned int

void *

unsigned int

-

-

142

sys_select

fs/select.c

int

fd_set *

fd_set *

fd_set *

struct timeval *

143

sys_flock

fs/locks.c

unsigned int

unsigned int

-

-

-

144

sys_msync

mm/filemap.c

unsigned long

size_t

int

-

-

145

sys_readv

fs/read_write.c

unsigned long

const struct iovec *

unsigned long

-

-

146

sys_writev

fs/read_write.c

unsigned long

const struct iovec *

unsigned long

-

-

147

sys_getsid

kernel/sys.c

pid_t

-

-

-

-

148

sys_fdatasync

fs/buffer.c

unsigned int

-

-

-

-

149

sys_sysctl

kernel/sysctl.c

struct __sysctl_args *

-

-

-

-

150

sys_mlock

mm/mlock.c

unsigned long

size_t

-

-

-

151

sys_munlock

mm/mlock.c

unsigned long

size_t

-

-

-

152

sys_mlockall

mm/mlock.c

int

-

-

-

-

153

sys_munlockall

mm/mlock.c

-

-

-

-

-

154

sys_sched_setparam

kernel/sched.c

pid_t

struct sched_param *

-

-

-

155

sys_sched_getparam

kernel/sched.c

pid_t

struct sched_param *

-

-

-

156

sys_sched_setscheduler

kernel/sched.c

pid_t

int

struct sched_param *

-

-

157

sys_sched_getscheduler

kernel/sched.c

pid_t

-

-

-

-

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

pid_t

struct timespec *

-

-

-

162

sys_nanosleep

kernel/sched.c

struct timespec *

struct timespec *

-

-

-

163

sys_mremap

mm/mremap.c

unsigned long

unsigned long

unsigned long

unsigned long

-

164

sys_setresuid

kernel/sys.c

uid_t

uid_t

uid_t

-

-

165

sys_getresuid

kernel/sys.c

uid_t *

uid_t *

uid_t *

-

-

166

sys_vm86

arch/i386/kernel/vm86.c

struct vm86_struct *

-

-

-

-

167

sys_query_module

kernel/module.c

const char *

int

char *

size_t

size_t *

168

sys_poll

fs/select.c

struct pollfd *

unsigned int

long

-

-

169

sys_nfsservctl

fs/filesystems.c

int

void *

void *

-

-

170

sys_setresgid

kernel/sys.c

gid_t

gid_t

gid_t

-

-

171

sys_getresgid

kernel/sys.c

gid_t *

gid_t *

gid_t *

-

-

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

const struct sigaction *

struct sigaction *

size_t

-

175

sys_rt_sigprocmask

kernel/signal.c

int

sigset_t *

sigset_t *

size_t

-

176

sys_rt_sigpending

kernel/signal.c

sigset_t *

size_t

-

-

-

177

sys_rt_sigtimedwait

kernel/signal.c

const sigset_t *

siginfo_t *

const struct timespec *

size_t

-

178

sys_rt_sigqueueinfo

kernel/signal.c

int

int

siginfo_t *

-

-

179

sys_rt_sigsuspend

arch/i386/kernel/signal.c

sigset_t *

size_t

-

-

-

180

sys_pread

fs/read_write.c

unsigned int

char *

size_t

loff_t

-

181

sys_pwrite

fs/read_write.c

unsigned int

const char *

size_t

loff_t

-

182

sys_chown

fs/open.c

const char *

uid_t

gid_t

-

-

183

sys_getcwd

fs/dcache.c

char *

unsigned long

-

-

-

184

sys_capget

kernel/capability.c

cap_user_header_t

cap_user_data_t

-

-

-

185

sys_capset

kernel/capability.c

cap_user_header_t

const cap_user_data_t

-

-

-

186

sys_sigaltstack

arch/i386/kernel/signal.c

const stack_t *

stack_t *

-

-

-

187

sys_sendfile

mm/filemap.c

int

int

off_t *

size_t

-

190

sys_vfork

arch/i386/kernel/process.c

struct pt_regs

-

-

转载于:https://www.cnblogs.com/gsharpsh00ter/p/6402104.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像中目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框中是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像中提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 中进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框中挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选中值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框中继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测中Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值