我正在研究 Rootkit,我收到了很多警告,例如`
"BUG: unable to handle kernel paging request at [addr]"
例如,当我尝试将自己的功能附加到sys_call_table[__NR_read]
.
在内核 <=2.6.25 中,函数change_page_attr()
有助于更改某个地址的页面属性。但是,在 >=2.6.28 的新内核中,此函数已被弃用,并被替换为set_memory_*
与 PAT 相关的函数。
Linux 内核文档并不清楚 PAT 函数的使用;我已经使用set_memory_wc()
&set_memory_uc()
来更改sys_call_table
权限,但我继续收到相同的 BUG。我猜这些功能正在取代旧的change_page_attr()
.
我在 i915 模块中看到了一个示例,并且我以相同的方式使用了函数,但 BUG 仍在继续。
有什么帮助吗?我是否以错误的方式处理内核地址?