用户是否可以在内核模式下运行自己的程序?用户如何才能做到这一点?他们必须绕过系统保护机制中的哪些弱点?
我认为用户程序可以在中断向量中将模式位从用户模式切换到内核模式,然后它可以执行它想要的任何中断处理程序。我走在正确的轨道上吗?
答案1
用户无法在内核模式下运行自己的代码。内核模式使程序能够控制机器(虚拟机,如果是的话)的各个方面。在内核模式下运行代码将绕过所有安全措施。
您可以通过加载模块在内核模式下运行代码。当然,只有 root 可以加载模块(对于某些静态、高安全性配置,可以禁用此功能)。
我不知道“用户程序可以在中断向量中将模式位从用户模式切换到内核模式”是什么意思。用户程序无法控制中断向量,内核为自己保留它。
答案2
您可以挂接系统调用并添加一个,这将是您的程序您的程序在内核模式下运行它以添加“系统调用”您需要向文件 /boot/system.map-kernel version 添加行以查找您的内核版本/ proc/version LKM 工具可以帮助你做到这一点