【加密与解密(第四版)】第八章笔记

第八章 Windows下的异常处理

8.1 中断是由外部硬件设备或异步事件产生的,异常是由内部事件产生的(故障、缺陷、终止(不可恢复))

IDT(中断描述符表)是硬件和操作系统交接中断和异常的关口,IDT是一张位于物理内存中的线性表,共有256项。在32位模式下每个IDT项的长度是8字节,在 64位模式下则为64字节。操作系统在启动阶段会初始化这个表,系统中的每个 CPU都有一份IDT 的拷贝。下面主要讨论 32位模式下的IDT。

IDT的位置和长度是由CPU的IDTR寄存器描述的。IDTR寄存器共有48位,其中高32位是表的基址,低 16 位是表的长度。尽管可以使用 SIDT 和LIDT指令来读写该寄存器,但 LIDT 是特权指令,只能在 Ring0特权级下运行。

IDT的每一项都是一个门结构,它是发生中断或异常时 CPU转移控制权的必经之路,包括如下3 种门描述符。

任务门(Task-gate)描述符,主要用于CPU的任务切换(TSS功能)。

中断门(Interrupt-gate)描述符,主要用于描述中断处理程序的人口。

陷阱门(Trap-gale)描述符,主要用于描述异常处理程序的人口。

8.2 SEH的概念及基本知识

在没有调试器参与的情况下,系统主要依靠 SEH机制(用户模式、内核模式下均可使用)和 VEH机制(仅支持用户模式)进行异常处理。SEH(结构化异常处理)是 Windows 操作系统用于自身除错的一种机制,也是开发人员处理程序错误或异常的强有力的武器。SEH是一种错误保护和修复机制,它告诉系统当程序运行出现异常或错误时由谁来处理,给了应用程序一个改正错误的机会。从程序设计的角度来说,就是系统在终结程序之前给程序提供的一个执行其预先设定的回调函数的机会。

下面几个小节暂时看不懂

8.3 SEH异常处理程序原理及设计

8.4 向量化异常处理

8.5 X64平台上的异常处理

8.6 异常处理程序设计中的注意事项

8.7 异常处理的实际应用

下面内容是海哥中级班的异常相关课程笔记

异常的分类:CPU产生的异常、软件模拟产生的异常

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NovFif

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值