.exe里面0x004000的基址是怎么来的?如果应用程序采用的是随机基址的话,为什么还需要这个基址呢?
.exe里面0x004000的基址是怎么来的?如果应用程序采用的是随机基址的话,为什么还需要这个基址呢?
vs可以设置随机基址,如果这样的话,那.exe每次被加载的时候,基址都是随机的吧,为什么生成的map文件里面的基址却还是0x4000那个呢?这个0x4000是怎么来的,有什么用?
[解决办法]
《Windows PE权威指南》
[解决办法]
这是个建议加载地址。严格的说基址是不能随便设置的(你可以随便设,但是设成多少后果不一)。另外这个基址只是指的虚拟地址,不是物理地址。物理地址是操作系统随便给的。你设置的这个地址对物理地址(的决定)没有任何效果。软件中的各个地址(比如某个指针存储的数值)都只是虚拟地址值,不是物理地址。
[解决办法]