pe 重定位表修正表 作用学习笔记

重定位表是解决DLL和EXE中硬编码地址问题的关键。当DLL如b.dll加载到内存时,其内部的call指令可能指向错误的地址。通过重定位表,系统能够修正这些硬编码地址,确保程序正确执行。虽然通常EXE文件的重定位需求较少,但某些情况下也会包含重定位表。本文探讨了这一概念及其在Windows系统中的应用。
摘要由CSDN通过智能技术生成
.windpws系统 exe 文件 中的重定位表  
     重定位表一般应用在DLL中  
举例:
	1.exe 加载2个DLL  
	a.dll  =内存地址 0x1000000
	第二个载入 分配内存 b.dll  =内存地址 0x2000000


但是  b.dll 中存在一个call 0x1000001  硬编码 绝对地址
 b.dll 加载到内存中2000000  本应该是call  0x2000001
 但是在编译器编译却写死了地址call 0x1000001 
那么编译器就在b.dll 中创建了重定位表 0001
意思就是地址 01 要重定位 那么系统就会把1000001改成2000001
那么重定位的任务就完成了

有人说EXE一般不用重定位,目前不是很清楚,但是看见很多程序有重定位表




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值