内核试图执行受NX保护的页面-尝试利用吗?

时间:2019-04-11 06:53:11

标签: linux-kernel kernel

看看这个非常基本的linux模块:

static ssize_t checksec_write(struct file *f, const char __user *buf,size_t len, loff_t *off)
{
    unsigned long addr_fonction_userspace;

    memcpy(&addr_fonction_userspace,buf,sizeof(unsigned long));

    void (*functionPtr)(void);
    functionPtr = addr_fonction_userspace;
    (*functionPtr)();

    return len;
}

此模块可在/ dev / checksec char设备上工作。

并看一下这个基本的c userland程序:

void fonction_userland();

void fonction_userland()
{
    asm ("nop");
}

void main()
{
    FILE *f=fopen("/dev/checksec","w");
    unsigned long addr_fonction_userland = &fonction_userland;
    fwrite(&addr_fonction_userland,sizeof(unsigned long),1,f);
}

运行程序时,我在dmesg中收到此错误:

kernel tried to execute NX-protected page - exploit attempt?

我知道这是一次利用尝试,因为这是我要学习的内容。但是我不明白为什么页面受NX保护。该函数不在非执行页面中,它是一个用户级函数。 未启用SMEP和SMAP(CR4寄存器中的位0)

非常感谢

0 个答案:

没有答案