找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 1439|回复: 7

关于中断门的特权检查

[复制链接]

3

主题

33

回帖

381

积分

至尊会员

积分
381

至尊会员

发表于 2024-3-13 11:34:07 | 显示全部楼层 |阅读模式
向老师请教下关于第20章中使用软中断实现系统调用中特权检查的问题

如下图展示,分两种情况:
1. 如果是用户程序(CPL=3)发起,则需要检查 CPL数值小于等于中断门DPL数值(int 0x88的DPL为3),同时CPL数值需要大于目标代码段的DPL

2. 如果是内核程序(CPL=0) 发起,则不需要检查中断门中的DPL,直接比较CPL和目标代码段DPL,相等则通过

请老师指教这个理解是否正确?



3

主题

33

回帖

381

积分

至尊会员

积分
381

至尊会员

 楼主| 发表于 2024-3-13 11:35:06 | 显示全部楼层

补充下图片

416

主题

315

回帖

3288

积分

管理员

积分
3288
发表于 2024-3-13 12:34:03 | 显示全部楼层
这两种情况的区分不是基于当前特权级CPL,而是基于中断源。
由INT n、INT3或者 INTO 指令引发的中断,要检查CPL和中断门/陷阱门的DPL,以防止低特权级的程序通过软中断访问内核数据。
对于硬件中断,不检查中断门/陷阱门的DPL。

416

主题

315

回帖

3288

积分

管理员

积分
3288
发表于 2024-3-13 12:35:11 | 显示全部楼层

图捏??Where is the pictures?

3

主题

33

回帖

381

积分

至尊会员

积分
381

至尊会员

 楼主| 发表于 2024-3-13 13:36:51 | 显示全部楼层
站长 发表于 2024-3-13 12:35
图捏??Where is the pictures?

好像一直发不出来。。。。https://img-blog.csdn.net/20160216130834814
我只好手动贴链接了。。

3

主题

33

回帖

381

积分

至尊会员

积分
381

至尊会员

 楼主| 发表于 2024-3-13 13:39:25 | 显示全部楼层
站长 发表于 2024-3-13 12:34
这两种情况的区分不是基于当前特权级CPL,而是基于中断源。
由INT n、INT3或者 INTO 指令引发的中断,要检 ...

那么Core20里927行 内核通过int 0x88调用的情况就是第一种,需要检查CPL=0,权限大于int0x88的DPL=3,等于目标代码段的DPL=0。是这个逻辑对吧?

416

主题

315

回帖

3288

积分

管理员

积分
3288
发表于 2024-3-13 13:43:28 | 显示全部楼层
cindeequan 发表于 2024-3-13 13:39
那么Core20里927行 内核通过int 0x88调用的情况就是第一种,需要检查CPL=0,权限大于int0x88的DPL=3,等 ...

是的。

3

主题

33

回帖

381

积分

至尊会员

积分
381

至尊会员

 楼主| 发表于 2024-3-13 15:31:02 | 显示全部楼层

进一步的问题,这里检查目标代码段的DPL,是指中断门里的目标代码段选择子的部分(RPL),还是该选择子指向的目标代码段描述符里的DPL?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-12-22 09:25 , Processed in 0.222470 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表