2010-11-25 80 views
0

我想知道是否可以在用户(预先)指定的地址加载进程?指定进程的内存起始地址

谢谢, Ashutosh说

+5

什么平台? – EboMike 2010-11-25 00:50:27

+1

您需要查阅针对您的特定工具链的文档,或者至少为此处的人员指定它。 C++标准本身不需要任何或者文档任何潜在的工具。 – 2010-11-25 00:58:56

回答

3

的基地址在PE文件中指定。如果您的意思是要在MSVC中编译的EXE,则可以在链接器设置中设置基址。如果你有一个任意的EXE或者DLL,你可以用一个好的PE资源手动修改基地址。您还应该关闭ASLR - 这也是一个项目设置,并在PE文件中。

大多数EXE文件加载到他们的首选基地址,因为当你用一个进程启动一个进程时,它是地址空间中唯一的东西,并且这对于EXE文件跳过重定位表来说并不是前所未闻的。然而,DLL有时必须重新基于。依赖于加载特定的基地址并不是一个好主意。