Kernel 在Linux内核中设置内存函数>=2.6.25
我正在研究rootkit,我收到了很多警告,比如`Kernel 在Linux内核中设置内存函数>=2.6.25,kernel,rootkit,Kernel,Rootkit,我正在研究rootkit,我收到了很多警告,比如` "BUG: unable to handle kernel paging request at [addr]" 例如,当我尝试将自己的函数附加到sys\u call\u table[\uu NR\u read]时 在kernels=2.6.28中,此函数已被弃用,并替换为与PAT相关的set\u memory.*函数 Linux内核文档不清楚PAT函数的用法;我使用set\u memory\u wc()&set\u memory\u uc()
"BUG: unable to handle kernel paging request at [addr]"
例如,当我尝试将自己的函数附加到sys\u call\u table[\uu NR\u read]
时
在kernels=2.6.28中,此函数已被弃用,并替换为与PAT相关的set\u memory.*
函数
Linux内核文档不清楚PAT函数的用法;我使用set\u memory\u wc()
&set\u memory\u uc()
更改sys\u call\u表的权限,但我仍然收到相同的错误。我猜这些函数正在取代旧的change\u page\u attr()
我在i915模块中看到了一个例子,我也以同样的方式使用了函数,但是错误还在继续
有什么帮助吗?我是否以错误的方式处理内核地址?我已经用2.6.26和2.6.30特定于debian的内核进行了测试
对于2.6.26,set_memory_wc
和使用set_memory_wb
进行恢复
如果内核黑客攻击(我认为)中有CONFIG\u DEBUG\u RODATA
,2.6.30就不起作用。我还没有时间真正重新编译,但我已经用一个定制内核进行了测试,它没有这个功能
在2.6.30中,还导出了set_memory_rw
和set_memory_ro
希望这有帮助 为什么必须在设置为非写回模式后恢复?我还在Linux文档中读到,应该成对使用set_memory_uuu[uc | wc | wt]
和set_memory_uwb
,以便在使用后将模式返回回写,但没有关于动机的解释。