gpt4 book ai didi

c - 内核模块内存访问

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:43:26 25 4
gpt4 key购买 nike

我是内核模块的新手,目前正在试验它。我读到它们具有与内核本身相同级别的访问权限。

这是否意味着他们可以访问物理内存并且可以查看/覆盖其他进程的值(包括内核内存空间)?

我写了这个简单的 C 代码来覆盖每个内存地址,但它没有做任何事情(预计系统会崩溃,不确定这是触及物理内存还是仍然是虚拟内存)

我用 sudo insmod ./test.ko 运行它,代码只是卡在那里(当然是因为无限循环)但是当我手动退出时系统工作正常。

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
unsigned char *p = 0x0;
while (true){
*p=0;
p++;
}

return 0;
}

void cleanup_module(void)
{
//
}

最佳答案

内核模块以内核权限运行(包括内核内存和所有外围设备)。您的代码无法正常工作的原因是您没有指定 initexit 模块。因此您可以加载模块,但内核不会调用您的方法。

请看this最小内核模块的示例。 Here您会找到有关所需宏的一些解释。

关于c - 内核模块内存访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57382699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com