我知道系统调用的用途是在使用级和内核级之间进行通信
那么,这是否意味着我可以使用系统调用编写内核内存?
例如 write() 用于写入内核内存
但如果我认为是可用的,它也涉及到大的安全问题吗?
如果我不能,为什么?
我知道系统调用的用途是在使用级和内核级之间进行通信
那么,这是否意味着我可以使用系统调用编写内核内存?
例如 write() 用于写入内核内存
但如果我认为是可用的,它也涉及到大的安全问题吗?
如果我不能,为什么?
让我们一一分解您的问题。
是的,如果您实现了允许写入内存中任意位置的系统调用,则可以直接通过系统调用写入内核内存。您是否或为什么想要这样的东西是另一个问题。这样的事情会带来巨大的安全风险。例如,任何进程都可以使用您的系统调用轻松提升其权限或在内核中安装 rootkit。
但是,Linux 确实有一个用于读取和写入内核内存的接口。看看/dev/kmem
。它允许您将内核内存作为“文件”打开,四处寻找并对其进行读写。