首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

pe中的基址重定位有关问题

2013-10-11 
pe中的基址重定位问题pe中的基址重定位typedef struct {DWORDvirtualAddressDWORDsizeOfBlockWORDtypeOf

pe中的基址重定位问题
pe中的基址重定位


typedef struct {
    DWORD   virtualAddress;
    DWORD   sizeOfBlock;
    WORD   typeOffset;
}IMAGE_BASE_RELOCATION;
为什么要用virtualAddress和typeOffset相加的方式来确定要改变的地址在exe文件中的file offset,而不直接指向file offset 或者只用一个RVA不就可以了么?





demo:

.......
call dword ptr [40200E]
......

如果dll默认被转载在0x400000地址,想在windows决定将它加载到0x870000,windows将如何转换这条指令到指定的内存,在内存中的dump中这条指令会发生变化么,如果变了是如何变的,讲解下原理。 PE 内存 exe windows
[解决办法]
这样做通常情况下比较节省重定位数据的空间吧,尤其是导入函数,将它们集中在一起时,基本上一个项就一个 word 表示了,否则一个项要有一个 dword 即两个 word 了
[解决办法]
未重定位前是call dword ptr [200E]

热点排行