.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一般不用重定位,目前不是很清楚,但是看见很多程序有重定位表
pe 重定位表修正表 作用学习笔记
最新推荐文章于 2023-09-09 13:59:16 发布
重定位表是解决DLL和EXE中硬编码地址问题的关键。当DLL如b.dll加载到内存时,其内部的call指令可能指向错误的地址。通过重定位表,系统能够修正这些硬编码地址,确保程序正确执行。虽然通常EXE文件的重定位需求较少,但某些情况下也会包含重定位表。本文探讨了这一概念及其在Windows系统中的应用。
摘要由CSDN通过智能技术生成