PE里面有两个重要的概念:
基地址(BaseAddress):PE文件被装载内存时其进程地址空间的起始地址就是基地址。优先装载基地址为PE文件头中的ImageBase。对于EXE程序来说,ImageBase默认为0x00400000,对于DLL来说,ImageBase默认为0x10000000。Windows系统在装载DLL时会尝试把它装载到ImageBase指定的虚拟地址,如果改地址被占用,则装载器选择其他空闲地址。
相对地址(RVA,Relative Virtual Address):相对于基地址的偏移地址,如果一个EXE被装载到0x00400000地址,那么RVA为0x1000的地址为0x00400000+0x1000=0x00401000
网友评论