Linux kernel 以CPL0权限级别运行的用户进程

Linux kernel 以CPL0权限级别运行的用户进程,linux-kernel,Linux Kernel,假设我们有一个总是以CPL0权限级别运行的用户进程,我想知道这是否可行:因为这个进程是以CPL0权限运行的,它可以访问内核结构和函数,然后我们直接使用get\u current函数来获取task\u struct,并将euid和uid更改为0。那我们就是根。 有什么问题吗?如果ring0中正在运行某些内容,通常人们不会将其称为用户进程……感谢您的回复@AlexHoppus,我通过执行以下步骤来实现它。我在LDT中添加了一个调用门描述符。我的代码将调用它,然后指向持有CPL0权限的用户进程。在这种

假设我们有一个总是以CPL0权限级别运行的用户进程,我想知道这是否可行:因为这个进程是以CPL0权限运行的,它可以访问内核结构和函数,然后我们直接使用
get\u current
函数来获取
task\u struct
,并将
euid
uid
更改为0。那我们就是根。
有什么问题吗?

如果ring0中正在运行某些内容,通常人们不会将其称为用户进程……感谢您的回复@AlexHoppus,我通过执行以下步骤来实现它。我在LDT中添加了一个调用门描述符。我的代码将调用它,然后指向持有CPL0权限的用户进程。在这种情况下,我的代码将始终以CLP0特权级别运行。@AlexHoppus我的问题来自isec.pl/papers/linux\u kernel\u do\u brk.pdf IV.5)特权升级部分。假设您可以控制CPL0进程,是的,我认为您的推理是正确的。@Nemanjabric感谢您的回答。在IV.5)特权升级部分的最后一段,如果我的推理是正确的,为什么我们需要“在内核内存中的某个地方找到任务结构,然后更改其UID”,而不是直接使用
get\u current
?我在这个问题上陷了很长时间。感谢您的时间和努力。如果ring0中正在运行某些内容,通常人们不会将其称为用户进程…感谢您的回复@AlexHoppus,我通过执行以下过程来实现它。我在LDT中添加了一个调用门描述符。我的代码将调用它,然后指向持有CPL0权限的用户进程。在这种情况下,我的代码将始终以CLP0特权级别运行。@AlexHoppus我的问题来自isec.pl/papers/linux\u kernel\u do\u brk.pdf IV.5)特权升级部分。假设您可以控制CPL0进程,是的,我认为您的推理是正确的。@Nemanjabric感谢您的回答。在IV.5)特权升级部分的最后一段,如果我的推理是正确的,为什么我们需要“在内核内存中的某个地方找到任务结构,然后更改其UID”,而不是直接使用
get\u current
?我在这个问题上陷了很长时间。谢谢你的时间和努力。