无法通过Linux内核模块(Ubuntu)在内核内存中写入
发布时间:2020-12-14 00:59:17 所属栏目:Linux 来源:网络整理
导读:我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存( Linux 2.6.31,Ubuntu 9.10)中的某些部分. 每当我这样做时,我都会收到此错误 [27154.303726] BUG: unable to handle kernel paging request at 0xc05769bc 我的代码: unsigned char *p = (unsign
我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存(
Linux 2.6.31,Ubuntu 9.10)中的某些部分.
每当我这样做时,我都会收到此错误
我的代码: unsigned char *p = (unsigned char *) c05769bc; p[1] = (addr & 0x000000ff); p[2] = (addr & 0x0000ff00) >> 8; p[3] = (addr & 0x00ff0000) >> 16; p[4] = (addr & 0xff000000) >> 24; 地址是正确的,我的写代码也是如此.我只是使用指针写入内核内存. 此行为是否与虚拟机有关?或者最近的内核是否有内置的某种保护?我希望有人能给我一些线索. 这个问题似乎与Ubuntu有关,因为使用Debian时相同的代码不会失败. TIA! 威廉 解决方法
最近的内核使他们的文本部分只读 – 应该生活在你试图戳的地址?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |