我想知道是否可以在用户(预先)指定的地址加载进程?
谢谢, 阿舒托什
最佳答案
基地址在PE文件中指定。如果你的意思是你在 MSVC 中编译的 EXE,那么你可以在链接器设置中设置基地址。如果您有一个任意的 EXE 或 DLL,您可以使用良好的 PE 资源手动更改基地址。您还应该关闭 ASLR - 它也是一个项目设置并且在 PE 文件中。
大多数 EXE 文件都加载到它们的首选基地址,因为当您启动一个进程时,它是地址空间中唯一的东西,并且 exe 文件跳过重定位表的情况并非闻所未闻。然而,DLL 有时必须重新定位。依赖于特定基地址的加载根本不是一个好主意。
关于c++ - 指定进程的内存起始地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272842/