gpt4 book ai didi

linux - 在 Linux 内核中写入只读内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:32 26 4
gpt4 key购买 nike

为了写入内核模块中的只读内存位置(此类内存位置的示例是 sys_call 表),通过操作 CR0 寄存器的第 16 位来禁用页面保护是否足够?< br/>或者我们是否需要更多的东西来写入只读内存位置?

最佳答案

如果您禁用页面写保护,您可能会破坏依赖于它的某些东西(例如内核页面上发生的任何写时复制)。如果你这样做,你可能想暂时禁用中断/调度,这样内存修改在那个 CPU 上看起来是原子的,如果你有超过 1 个,这也将避免将线程移动到不同的 CPU。

我不确定使用像 0xc12c9e90 这样的硬编码地址是个好主意。我不知道 Linux 如何在地址空间的内核部分布置内容,但是由于动态内存分配或出于安全原因,地址可能会从一个引导更改为另一个引导(移动内容很有用,因为它减少了机会)利用内核错误)。

关于linux - 在 Linux 内核中写入只读内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544215/

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