请问C++哪个函数能够得到进程中DLL的内存基址?

devilapp 2012-10-15 11:47:47
最近在看郁金香老师的VC++外挂教程,可是用CE获取坐位基址的时候,基址是由一个DLL基址加偏移地址组成的[ScatProt.dll+10D9EA].想请问怎样获得这个DLL的内存基址?
...全文
777 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
armsword 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

谢谢你百忙中抽出时间回答我的问题

抱歉,新手不太理解PE结构是什么.我刚刚百度了一下.了解了个大概.那么C++里面,没有函数可以直接获取进程中DLL基址的吗?
[/Quote]


如果只想得到dll的基址,使用peid加载dll就能看到。如果想获得其它进程调用的dll的基址,利用CreateToolhelp32Snapshot 枚举可以得到。

另外,基础不打好,还是别学郁金香那个了。希望LZ能够结贴。


devilapp 2012-10-15
  • 打赏
  • 举报
回复
谢谢你百忙中抽出时间回答我的问题

抱歉,新手不太理解PE结构是什么.我刚刚百度了一下.了解了个大概.那么C++里面,没有函数可以直接获取进程中DLL基址的吗?
armsword 2012-10-15
  • 打赏
  • 举报
回复
NT_header.OptionalHeader.ImageBase

请查看PE结构。
armsword 2012-10-15
  • 打赏
  • 举报
回复
peid
devilapp 2012-10-15
  • 打赏
  • 举报
回复
armsword,您好,我想私下请教你几个问题,不知道要怎么联系您呢.
devilapp 2012-10-15
  • 打赏
  • 举报
回复
谢谢各位大侠,祝你们生活愉快!
Dobzhansky 2012-10-15
  • 打赏
  • 举报
回复
而且还是可能的 rebase 后的.
Dobzhansky 2012-10-15
  • 打赏
  • 举报
回复
一个 dll 的 HMODULE 值就是这个 dll 基址值.
大熊猫侯佩 2012-10-15
  • 打赏
  • 举报
回复
2种方法:

1 你了解PE偏移,自己写fopen,fread来读对应结构

2 微软有一套PE help API,你可以调用获取
rendao0563 2012-10-15
  • 打赏
  • 举报
回复

inline HMODULE ModuleHandleByAddr(const void* ptrAddr)
{
MEMORY_BASIC_INFORMATION info;
::VirtualQuery(ptrAddr, &info, sizeof(info));
return (HMODULE)info.AllocationBase;
}


不知道你问的是不是这个?

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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