PE文件:绑定导入表

本文介绍了PE文件中的绑定导入表,旨在加快程序加载速度,通过保存导入函数的实际地址,减少加载时间。内容包括绑定导入表的作用、生效前提及结构,详细解析了IMAGE_BOUND_IMPORT_DESCRIPTOR结构和其在DLL转发中的应用。
摘要由CSDN通过智能技术生成

0x00 作用

绑定导入表是为了加快程序的加载程序,因为正常PE加载的时候,要去检查导入表并将相关的DLL映射到进程空间地址,并将导入表的FirstThunk指向的数组填入函数的真实地址,这一步需要花费很多时间,绑定导入表就是为了解决此环节的问题,绑定导入表中保存了导入函数的真实地址,PE加载的时候系统会检测是否有绑定导入表,就会直接将函数地址写入FirstThunk。
但是绑定导入表的生效,有两个前提条件:
1.程序初始化时,导入的DLL都加载到了首选基址中
2.程序执行了绑定导入操作以后,导入DLL中引用的符号位置一直没有变化

俩个条件有一个不符合的话,就不可以绑定,

0x01 结构

数据目录表( DataDirectory )的第12个成员
它包含了可以让加载器判断绑定的地址是否合法的信息。描述它的数据结构是IMAGE_BOUND_IMPORT_DESCRIPTOR,目录表就是这种结构的数组,每一项都对应一个被绑定过的DLL。

typedef	    struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
    
		DWORD TimeDateStamp; 
		WORD OffsetModuleName;
 		WO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值