我正在阅读 blog post在 x86 分段保护上。 RPL 能否与 DPL 不同?如果不同,它的用例是什么?
最佳答案
它们可以不同,这是有意的。
这个想法是,当操作系统/内核代表用户代码执行某些操作时,它可以使用用户代码的权限访问内存(RPL
会反射(reflect)Requestor Privilege Level
,用户代码的级别)。如果它们不足,则异常会使操作失败。如果这个(或类似的)机制不存在,用户代码可能会以某种方式请求代表它执行的操作来破坏操作系统/内核,并且该操作将由内核以其内核特权执行。这就是你得到 EOP 的地方.
有关段的更多信息,请转到源代码,Intel 的 CPU 手册。一切尽在其中。
关于x86 - RPL 可以不同于 x86 机器上的 DPL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448372/