加载配置信息

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

时间: 2024-08-11 03:37:04

加载配置信息的相关文章

6.Sentinel源码分析—Sentinel是如何动态加载配置限流的?

Sentinel源码解析系列: 1.Sentinel源码分析-FlowRuleManager加载规则做了什么? 2. Sentinel源码分析-Sentinel是如何进行流量统计的? 3. Sentinel源码分析- QPS流量控制是如何实现的? 4.Sentinel源码分析- Sentinel是如何做到降级的? 5.Sentinel源码分析-Sentinel如何实现自适应限流? 有时候我们做限流的时候并不想直接写死在代码里面,然后每次要改规则,或者增加规则的时候只能去重启应用来解决.而是希望能

C# 动态加载程序集信息

在设计模式的策略模式中,需要动态加载程序集信息,本文通过一个简单的实例,来讲解动态加载Dll需要的知识点. 涉及知识点: AssemblyName类,完整描述程序集的唯一标识, 用来表述一个程序集. Assembly类,在System.Reflection命名空间下,表示一个程序集,它是一个可重用.无版本冲突并且可自我描述的公共语言运行时应用程序构建基块. Module类 表述在模块上执行反射,表述一个程序集的模块信息. Type类,在System命名空间下,表示类型声明:类类型.接口类型.数组

Unity 5.x动态加载光照信息(所有坑已踩)

能搜到这的应该是被新的烘焙系统坑了少时间,4.x到5.x美术必须重新烘焙,关于美术的没什么说的,只有---重新烘焙! 新的烘焙系统,为了兼容5.x的多场景编辑功能,将烘焙信息从mesh全部挪到了一个中间件xxx.assets,这个资源文件在5.x烘焙完成后和光照贴图存放在一起,然而关于这个资源文件,我是查来查去没有找到任何接口可以访问. 只能百度谷歌,发现方案基本都是序列化,因为上面提到的烘焙信息没有在mesh中保存,而是一个鸡肋资源文件,发布时xxx.assets可以删了. 序列化哪些数据,在

log4j 路径环境变量配置和log4j加载配置

1.lo4j日志路径从环境变量读取,log4j.xml配置如下: 具体配置如下: log4j.appender.R.Encoding=UTF-8 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender log4j.appender.R.Append=true #log4j.appender.R.Threshold=INFO log4j.appender.R.File=${log4j.home}/logs/log.log log4j.a

webdriver 启动chrome时加载配置

Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome配置的方法:  一.加载所有Chrome配置 用Chrome地址栏输入chrome://version/,查看自己的"个人资料路径",然后在浏览器启动时,调用这个配置文件,代码如下: #coding=utf-8 from selenium import webdriver option = webdriver.ChromeOptions() op

nginx windows下重新加载配置

运行过程中,有个节点部分服务出现故障,像将其下线修复, 使用nginx -t; nginx -s reload 重新加载配置 得到错误"nginx: [error] OpenEvent("Global\ngx_reload_1868") failed (5: Access is denied)" 原因是 nginx 作为windows 服务在运行,安全性问题,不能执行 使用 psexec 执行这段,

基于JQuery实现滚动到页面底端时自动加载更多信息

基于JQuery实现滚动到页面底端时自动加载更多信息 关键代码: 代码如下: var stop=true; $(window).scroll(function(){ totalheight = parseFloat($(window).height()) + parseFloat($(window).scrollTop()); if($(document).height() <= totalheight){ if(stop==true){ stop=false; $.post("ajax.

此编译单元不包含在frame元数据中指定的factoryClass,无法加载配置的运行时共享库

警告:此编译单元不包含在frame元数据中指定的factoryClass,无法加载配置的运行时共享库.要在没有运行时共享库的情况下进行编译,请将 -static-link-runtime-shared-libraries  选项设置为true, 或删除 -runtime-shared-libraries 选项. 通过修改FlashBuilder4\Adobe Flash Builder 4\sdks\4.0.0\frameworks  下的flex-config.xml,将 <static-li

nginx 启动,停止和重新加载配置

nginx 启动,停止和重新加载配置 要启动nginx的,运行可执行文件.一旦nginx的启动时,它可以通过与-s参数调用可执行来控制.使用以下语法 nginx -s signal 其中,信号可以是下列之一: stop — fast shutdown quit — graceful shutdown reload — reloading the configuration file reopen — reopening the log files 在配置文件中所作的更改不会被应用,直到命令重新配