Linux 新增系统调用
环境说明
32 位 Kali linux-5.8.15
Attention
在开始之前,先注意一个十分重要的地方:注意自己系统的位数,确定是32位还是64位。不同位数的系统调用文件肯定不一样。
这其实是在我实在无解新增的系统调用为何出错后询问老师才意识到的一点o(╥﹏╥)o
Linux系统i386即为32位系统,x86_64为64位系统。
查看系统位数指令:
getconf LONG_BIT
修改系统调用相关文件
修改系统调用表
系统调用表文件位置为:/home/kali/linux-5.8.15/arch/x86/entry/syscalls/syscall_32.tbl
(如果为64位系统则修改同文件夹下的syscall_64.tbl即可)。
在系统调用表中添加进新增的系统调用,自左至右依次为:[编号]+[类型]+[系统调用名称]+[服务例程入口地址]
新增系统调用的编号只需在已有编号的基础上增加即可,注意避开不允许使用的编号(文件中会有注释进行提醒),服务例程入口地址在系统调用名前增加“sys_”前缀即可。
syscall_32.tbl修改如下:
声明系统调用服务例程原型
系统调用服务例程声明文件位置:home\kali\linux-5.8.15\include\linux\syscalls.h