C++如何找出当前进程中指定模块(DLL)的内存地址

首先是程序A.exeA.exe会加载一个B.dll的模块一个用C++写好的C.dll注入到A.exeC.dll想获取A.exe进程中B.dll模块的指定函数地址用静态的方... 首先是程序A.exe
A.exe会加载一个B.dll的模块
一个用C++写好的C.dll注入到A.exe
C.dll想获取A.exe进程中B.dll模块的指定函数地址
用静态的方法可以知道C.dll的地址是1002AEF0
用调试工具可以知道内存中B.dll的该函数的内存地址是054DAEF0
因为每次加载该dll,他的内存地址都不会相同(前面的054D)
请问如何获取该内存地址呢?(通过静态的1002AEF0)
(该函数地址不是导出函数)
求各位大侠给出点代码好原理来.实用的话分可以接着加.
展开
 我来答
kyotrue
2014-02-12 · TA获得超过1.5万个赞
知道大有可为答主
回答量:2.3万
采纳率:75%
帮助的人:6792万
展开全部
HMODULE hModule = GetModuleHandle(_T("b.dll")); // 获取b.dll句柄
MODULEINFO mi;
GetModuleInformation(NULL, hModule, &mi, sizeof(MODULEINFO)); // 获取b.dll信息
// mi.lpBaseOfDll就是b.dll的加载起始地址
追问
添加了.h和.lib的支持 可以生成
但是运行测试不行啊....
lpBaseOfDll 0xcccccccc void *
SizeOfImage 0xcccccccc unsigned long
EntryPoint 0xcccccccc void *
mi.lpBaseOfDll 0xcccccccc void *
请问怎么个情况?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式