insmod: ERROR: could not insert module kprobe_example.ko:不允许



我是指:http://www-users.cs.umn.edu/~boutcher/kprobes/kprobes.txt.html了解kprobe。我使用了文档中给出的kprobe_example.c。

我用makefile(取自同一文档的代码)编译了它

我得到了编译错误,因为我的内核版本是4.2,一些字段在结构体pt_regs中发生了变化。因此,我将eip替换为ip,并将eflag替换为kprobe_example.c中的flag,即https://gist.github.com/murlee417/87c2eb43a6afa1954b05404a07813e81。然后我就可以成功地编译它了。

现在,作为根用户,我做了:

#insmod kprobe_example.ko

和我得到:

insmod: ERROR: could not insert module kprobe_example.ko: Operation not permitted

我的消息缓冲区有:

#dmesg  
[ 4537.478408] Couldn't find do_fork to plant kprobe

请帮我解决这个错误,并使insmod工作

在x86中,do_fork()被称为sys_fork(),因此更改代码如下

/* For each probe you need to allocate a kprobe structure */
static struct kprobe kp = {
    //.symbol_name  = "do_fork",
    .symbol_name    = "sys_fork",
};

相关内容

  • 没有找到相关文章

最新更新