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