微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向需要root权限的Linux添加一个新的系统调用

我试图添加一个系统调用到需要root权限运行的linux内核(版本:3.10.91)。

你可以看到我的尝试如下:

#include <linux/kernel.h> #include <linux/linkage.h> #include <linux/sched.h> #include <asm/current.h> #include <asm/errno.h> asmlinkage long sys_set_casper(pid_t pid,int value) { struct task_struct *process; if (!capable(CAP_SYS_ADMIN)) return -EPERM; //valid values are 0,1,2,3 if (value != 0 && value != 1 && value != 2 && value != 3 ) return -EINVAL; process = find_task_by_vpid(pid); if (process == NULL) return -ESRCH; //modify the casper field accordingly process->casper = value; return 0; }

Casper只是我添加一个任务描述符。 基本上,当casper值为1时,我希望进程被隐藏(对ps,pstree,top等不可见)。内核重新编译jut很好(我还在base.c中做了必要的修改等)。

我试着用下面的代码test.c来testing我的系统调用

Windows模仿:软膏中的一个缺陷

将Perl正则expression式转换为等价的ECMAScript正则expression式

睡眠函数在c,unix中

一个Nginx工作进程是否同时或一个地处理两个请求?

Bluez BLE连接Linux

#include <stdio.h> #include <stdlib.h> #include <errno.h> #define NR_set_casper 351 int main(int argc,char **argv) { long y; printf("PID of current process: %dnn",getpid()); printf("Call set_casper system call to set flag 1n"); y = syscall(NR_set_casper,getpid(),0); printf("Return value of set_casper system call: %ldn",y); if (y < 0) { printf("set_casper system call Failed. Run with sudon"); return EXIT_FAILURE; } return 0; }

我编译并运行如下:

gcc test.c

sudo ./a.out

输出是:

PID of current process: 3852 Call set_casper system call to set flag 1 Return value of set_casper system call: -1 set_casper system call Failed. Run with sudo

奇怪的是,即使删除了sudo控制行之后:

if (!capable(CAP_SYS_ADMIN)) return -EPERM;

并重新编译内核,我仍然有同样的错误

基本上,为什么我的sys_set_casper函数返回-1?

编辑

我已经添加了:351 i386 set_casper sys_set_casper to arch / x86 / syscalls $ gedit syscall_32.tbl

不过,我的系统是64位的。 这可能是问题吗?

如何检测是否安装了MysqL

在不调用read()的情况下确定pipe道的大小

静态编译libcurl应用程序li​​nux C(缺less库)

您使用Windows的哪些logging工具?

在libpcap编译过程中发生冲突

正如其他人在评论中所说的那样,问题是我根本没有打电话给系统调用。 我只是把我的电话添加到64位系统调用表,并再次尝试一切,它的工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐