论文部分内容阅读
结构化异常处理(SEH),是Windows操作系统所提供的对错误或异常的处理机制,是Windows操作系统的一个重要组成部分。Win32结构化异常处理(Win32SEH)机制是32位Windows提供给应用程序开发的一种机制,它允许应用程序截获和处理系统异常,并允许应用程序对执行的结果进行控制。为实现结构化异常处理,Windows提供了一个后进先出的异常处理队列,结构化异常处理的核心就是对异常处理队列的扫描处理。Win32结构化异常处理实际包含两个主要功能:终止处理和异常处理。所有的异常处理都是从内核底层的异常处理程序开始。当异常发生时先进入内核的异常响应/处理程序的入口,然后进入公共的处理函数,在函数中根据CPU在发生异常时所处的空间不同而分别处理。本文中通过对系统源代码的分析,详细研究了结构化异常处理使用的框架结构,主要的数据结构,具体的处理过程及涉及到各个函数的作用。结合Win32SEH,对展开、长程跳转等做了进一步的分析,并通过具体实例论证前面分析的结构化异常处理过程的正确性,进而提出异常-异常处理函数表,此表的用途是节省开销。本文最后分析结构化异常处理的安全性问题,首先通过一个具体覆盖SEH链的例子来说明SEH技术存在的安全隐患。Windows系统在发展过程中又提出了SafeSEH和SEHOP两种重要的防止SEH链被覆盖的技术,本文通过对SafeSEH和SEHOP具体原理的分析研究,指出他们存在的安全隐患。