如何得到动态加载DLL的指针地址呢

ltaotao007_2005 2008-06-21 09:06:13
动态加载的DLL文件
如何找到他加载的指针地址呢?

例如,我用cheat engine5.3
加载一个程序,其他的有一个DLL文件

我可以输入DLL文件名,就得到他加载的指针地址了
画面如下:
this pointer points to addess 009d5aa4D(输出的地址)
addess of pointer My.dll(输入的名称)
...全文
209 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2008-06-22
  • 打赏
  • 举报
回复
这个地址干吗?这东西一般没啥用啊?说不定你存在啥误解
ltaotao007_2005 2008-06-22
  • 打赏
  • 举报
回复
我用CE内存扫描工具,可以得到Wndmy.dll+a29d0这种形式 的指针值 06C5BCE8

我想CE可做的(CE中要先选择主进程),VC也肯定可以做,但不知要用些什么函数来读这个值?请高手赐教呀
长尾巴的悟空 2008-06-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnzdgs 的回复:]
没看明白你问的是什么。
LoadLibrary返回的HMODULE就是DLL模块的开始地址,也可以用GetModuleHandle得到。
导出函数的地址用GetProcAddress来获取。
[/Quote]
cnzdgs 2008-06-22
  • 打赏
  • 举报
回复
你想根据什么得到什么?
ltaotao007_2005 2008-06-22
  • 打赏
  • 举报
回复
我清楚了,就是my.dll的基地址,再加a29d0,取其内存值
Cnzdgs的方法正确
cnzdgs 2008-06-22
  • 打赏
  • 举报
回复
用OpenProcess打开进程,再用EnumProcessModules获取进程的所有HMODULE,然后循环逐一GetModuleFileNameEx获取各个HMODULE对应的文件名,与你要找的文件名进行比较,找到后用该HMODULE值+0xa29d0用ReadProcessMemory读内存。
ltaotao007_2005 2008-06-22
  • 打赏
  • 举报
回复
我已经用OpenProcess得到主程序的pid
如何再使用,GetModuleHandle来得到主程序所调用DLL加载的地址
ltaotao007_2005 2008-06-22
  • 打赏
  • 举报
回复
cnzdgs根据
动态库的加载地址Wndmy.dll+a29d0偏移量,指向的内存数据
ltaotao007_2005 2008-06-22
  • 打赏
  • 举报
回复
没有误解 ,确定需要
cnzdgs 2008-06-21
  • 打赏
  • 举报
回复
同一个DLL在不同的进程中其映射的地址可能相同也可能不同,GetModuleHandle是获取DLL在本进程内的地址,如果要获取其它进程中的地址,可以用OpenProcess、EnumProcessModules、GetModuleFileNameEx等函数。
ltaotao007_2005 2008-06-21
  • 打赏
  • 举报
回复

HMODULE hSetupapi = GetModuleHandle(_T("win32k.sys"));
这函数参数只有一个DLL名,而没有加载DLL文件的主程序,
如果系统中,存在两个程序都调用了同一个DLL,这可咱解释>
all4u 2008-06-21
  • 打赏
  • 举报
回复
GetModuleHandle得到DLL加载的地址
GetProcAddress得到具体DLL内函数的地址
videojet 2008-06-21
  • 打赏
  • 举报
回复
GetModuleHandle可以转为地址
cnzdgs 2008-06-21
  • 打赏
  • 举报
回复
没看明白你问的是什么。
LoadLibrary返回的HMODULE就是DLL模块的开始地址,也可以用GetModuleHandle得到。
导出函数的地址用GetProcAddress来获取。

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧