我正在为我的操作系统课程编写一个 rootkit(老师可以接受我在这里寻求帮助)。我的 rootkit 挂钩 sys_read 系统调用以向用户隐藏“魔法”端口。当我将用户缓冲区 *buf(sys_read 的参数之一)复制到内核空间(到名为 kbuf 的缓冲区中)时,我得到内核恐慌/核心转储错误。这可能只是因为中断读取导致系统停止运行,但我想知道是否有人对此有任何看法。
该代码可在线获取。看第 207 行:https ://github.com/joshimhoff/toykit/blob/master/toykit.c
我连接了 getdents 并使用 copy_from_user 将 getdents 结构带入内核空间,效果很好!我不确定阅读有什么不同。
谢谢您的帮助!