在C++的进程中查找加载的DLL的内存地址

Dor*_*oro 4 c++ memory dll

我有一个使用'Test.dll'的正在运行的进程.我想知道Test.dll在内存中的确切内存位置,但似乎无法.

我的主要问题是我需要写入这个DLL的偏移量,但是当我使用Read/WriteProcessMemory时,我无法在Test.dll +中输入一些偏移量.

任何帮助将不胜感激.

i_a*_*orf 6

好的,所以一种方法是使用返回的值GetModuleHandle().是的,它返回一个HANDLE,但您可以将其转换为适当的指针类型.与Visual Studio的"模块"窗口中的模块地址范围进行比较,您将看到它与范围的起始值相同.

更好的方法是使用GetModuleInformation().您传递的MODULEINFO结构的第一个字段将包含DLL的基址.

虽然根据MODULEINFO的文档:

模块的加载地址与HMODULE值相同.

所以我想只使用HMODULE和铸造是可以的.无论你想做什么,我想.

如果要获取远程进程的信息,请使用EnumProcessModules().