我想知道像这样的用户空间程序如何modprobe
将可执行文件从用户空间注入到内核内存?
它发出什么样的系统调用以及内核提供了哪些接口来实现这一点? (请详细解释)。
谢谢。
答案1
使用以下任一方法加载模块init_module
或者finit_module
。第一个从指针复制模块,第二个从文件描述符读取模块。两者都支持向模块传递附加参数以及内核的几个标志。
卸载模块是使用delete_module
,它采用要卸载的模块的名称。
如果您想编写执行此操作的代码,您可能需要考虑使用libkmod
;它是的一部分kmod
并在所有发行版中可用。