无法通过Linux内核模块(Ubuntu)在内核内存中写入

无法通过Linux内核模块(Ubuntu)在内核内存中写入,第1张

概述我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存( Linux 2.6.31,Ubuntu 9.10)中的某些部分. 每当我这样做时,我都会收到此错误 [27154.303726] BUG: unable to handle kernel paging request at 0xc05769bc 我的代码: unsigned char *p = (unsigned char * 我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存( Linux 2.6.31,Ubuntu 9.10)中的某些部分.
每当我这样做时,我都会收到此错误

[27154.303726] BUG: unable to handle kernel paging request at 0xc05769bc

我的代码:

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!

威廉

解决方法 最近的内核使他们的文本部分只读 – 应该生活在你试图戳的地址? 总结

以上是内存溢出为你收集整理的无法通过Linux内核模块(Ubuntu)在内核内存中写入全部内容,希望文章能够帮你解决无法通过Linux内核模块(Ubuntu)在内核内存中写入所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1025572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存