x86 - RPL 可以不同于 x86 机器上的 DPL 吗?

标签 x86 memory-segmentation

我正在阅读 blog post在 x86 分段保护上。 RPL 能否与 DPL 不同?如果不同,它的用例是什么?

最佳答案

它们可以不同,这是有意的。

这个想法是,当操作系统/内核代表用户代码执行某些操作时,它可以使用用户代码的权限访问内存(RPL 会反射(reflect)Requestor Privilege Level,用户代码的级别)。如果它们不足,则异常会使操作失败。如果这个(或类似的)机制不存在,用户代码可能会以某种方式请求代表它执行的操作来破坏操作系统/内核,并且该操作将由内核以其内核特权执行。这就是你得到 EOP 的地方.

有关段的更多信息,请转到源代码,Intel 的 CPU 手册。一切尽在其中。

关于x86 - RPL 可以不同于 x86 机器上的 DPL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448372/

相关文章:

matlab - 确定在 MATLAB 中运行的是 x64 还是 x86 操作系统

c++ - 64 位系统可以运行包含一些内联汇编的 32 位软件吗?

linux-kernel - 为什么有两个重叠的数据段(例如在 Linux 内核中)?

c# - 当安装为 Windows 服务时,我的 x86 Exe 以 x64 运行

x86 - x86是什么意思?

汇编段模型 32 位内存限制

assembly - "FS"/"GS"寄存器的用途是什么?

assembly - 段寄存器的汇编程序使用

operating-system - 虚拟内存的分页或分段,哪个更好?

visual-c++ - 看似不必要的循环