c++ - 指定进程的内存起始地址

标签 c++

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

谢谢, 阿舒托什

最佳答案

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

大多数 EXE 文件都加载到它们的首选基地址,因为当您启动一个进程时,它是地址空间中唯一的东西,并且 exe 文件跳过重定位表的情况并非闻所未闻。然而,DLL 有时必须重新定位。依赖于特定基地址的加载根本不是一个好主意。

关于c++ - 指定进程的内存起始地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4272842/

相关文章:

c++ - 通过 C++ 源代码控制两个直流电机(在 arduino 上)

c++ - 在什么情况下我应该在 C++ 中使用 memcpy 而不是标准运算符?

c++ - 为什么这个 boost::spirit::qi 规则不起作用?

c++ - Boost_LIBRARYDIR 不是正确的拼写

c++ - 构造函数返回值中的异常

c++ - 对象数组和继承

.net - 将非托管 C++ 与 F# 混合用于物理 : worth it?

c++ - 用指针向后重新排序数组

C++ RTSP视频采集实现

c++ - 如何使用 pthread 在对象内部运行线程