【Windows内核】(10)中断门
中断门
IDT
IDT既中断门描述符表,同GDT一样,IDT也是由一系列描述符组成的,每个描述符占8个字节。但要注意的是,IDT表中的第一个元素不是NULL。

IDT表可以包含3种门描述符:
任务门描述符
中断门描述符
陷阱门描述符
中断门与调用门的区别
1)Windows没有使用调用门,但是使用了中断门
2)执行调用门的指令:CALL CS:EIP CS是段选择子,包含了查找GDT表的是一个索引
执行中断门的指令:INT N N是索引 查询的是另一张表 IDT
3)中断门不检查RPL 只检查CPL 因为中断门不用选择子 所以不看RPL
4)中断门没有参数
中断门描述符

P = 1 S = 0 TYPE = 1110 为 32位中断门描述符(D位=0为16位 D位=1为32位)
INT N指令
INT X X*8+IDT的基址就是具体的中断门描述符
1.在没有权限没有切换的时候 向堆栈PUSH3个值 CS EFLAG EIP
2.在权限切换的时候 向堆栈PUSH5个值 SS ESP EFLAG CS EIP
在中断门中 不能通过RETF返回 用IRET/IRETD指令返回


浙公网安备 33010602011771号