1.简介
用于存放基于结构化异常处理的各种异常句柄. 当程序运行发生异常后,os会根据异常类别对异常进行分发处理.
如果PE中该部分没有对应的异常类别处理函数句柄,os将会调用其内核模式的异常分发函数终止程序运行.
2.定位
位于数据目录的第11个条目
3.解析其数据结构
typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32 {
DWORD Size; //该结构大小
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD GlobalFlagsClear; //pe加载器加载该映像时需要清除的标记
DWORD GlobalFlagsSet; //pe加载器加载它时需要清除的标记
DWORD CriticalSectionDefaultTimeout; //
DWORD DeCommitFreeBlockThreshold;
DWORD DeCommitTotalFreeThreshold;
DWORD LockPrefixTable; // VA指向一个地址列表,保存的是lock前缀的指令的地址
DWORD MaximumAllocationSize; //最大分配粒度
DWORD VirtualMemoryThreshold; //最大虚拟内存大小
DWORD ProcessHeapFlags; //作为创建默认堆的HeapCreate的第一个参数
DWORD ProcessAffinityMask;
WORD CSDVersion;
WORD Reserved1;
DWORD EditList; // VA
DWORD SecurityCookie; // VA 指向GS的安全cookie
DWORD SEHandlerTable; // VA与平台相关, 指向一个地址列表,保存的是SEhandler
DWORD SEHandlerCount; // sehandler的数量
DWORD GuardCFCheckFunctionPointer; // VA
DWORD Reserved2;
DWORD GuardCFFunctionTable; // VA
DWORD GuardCFFunctionCount;
DWORD GuardFlags;
} IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32;
例如:windows的calc.exe