gpt4 book ai didi

linux - 无法通过 Linux 内核模块 (Ubuntu) 写入内核内存

转载 作者:IT王子 更新时间:2023-10-29 00:31:21 25 4
gpt4 key购买 nike

我试图通过内核模块在虚拟机(使用 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!

威廉

最佳答案

ASLR也许(地址空间布局随机化)?

它可以由 /proc/sys/kernel/randomize_va_space 控制(回显 0 应该将其关闭)。

关于linux - 无法通过 Linux 内核模块 (Ubuntu) 写入内核内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2374470/

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