重定位表
重定位表用于在程序加载到内存中时,进行内存地址的修正。
为什么要进行内存地址的修正?我们举个例子来说:test.exe可执行程序需要三个动态链接库dll(a.dll,b.dll,c.dll),假设test.exe的ImageBase为400000H,而a.dll、b.dll、c.dll的基址ImageBase均为1000000H。这三个dll被加载到了同一个位置,这样肯定是不行的。重定位就是为了让dll加载到不同的位置而产生的。
1 | // win原理Day003.cpp : 定义控制台应用程序的入口点。 |
修复重定位项
1 |
|
资源表
1 | // win原理Day003.cpp : 定义控制台应用程序的入口点。 |