Windows PE 第十章 加载配置信息

本文详细介绍了Windows PE中的加载配置信息,它主要用于结构化异常处理(SEH)。加载配置信息表包含了异常处理句柄,当程序运行异常时,操作系统依据这些句柄进行异常分发。SEH分为硬异常和软异常,前者包括故障异常、陷阱异常和终止异常,后者主要通过 RaiseException API 调用。PE文件的加载配置信息由数据目录表的第11个目录项指出,通常大小为64字节。通过分析PE结构,可以定位并理解加载配置信息的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加载配置信息

    加载配置信息最初最用在Windows NT操作系统中,作为文件头部的延伸部分,后来被用作异常处理。加载配置信息表中存放了基于结构化异常处理(SEH)技术的各项异常句柄。当程序运行发生异常后,操作系统会根据异常处理类别对异常进行分发处理,并依据这些句柄实施程序流程的转向,保证系统能从异常中全身而退。

10.1 何为加载配置信息

    加载配置信息结构是PE中定义的一种基本数据类型,最初仅用于Windows NT操作系统,定义一些供Windows NT操作系统加载PE时用到的一些附加信息。后来该部分含义发生了变化。不再定义加载用的配置信息,而是被专门用来定义基于SEH技术的相关数据。
    如果PE中的该部分表中没有对应的异常类别处理函数句柄,操作系统将会调用其内核模式的异常分发函数终止应用程序的运行。这种安全设置主要是为了阻止因异常句柄导致的溢出被恶意程序利用,从而造成对系统的破坏。

通常情况下,连接器会提供一个默认的加载配置信息结构,该结构包含了预留的SEH数据。如果用户代码中提供了该结构,则必须由用户来完成设置新的预留SEH字段,否则连接器不会讲SEH数据加入到加载配置信息中。

10.2  Windows 结构化异常处理

    就是说SEH的原理和调用,之前写核心编程笔记的时候整理过:

http://blog.youkuaiyun.com/u013761036/article/details/54234212 这里只说当时没有整理的部分。

Windows 异常分类

    由于SEH使用了与硬件平台如果的数据指针,所以在不同的硬件平台上,SEH的实现方法是不同的。在X86平台上的SEH处理框架中,把异常分为两大类:

硬异常(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值