none
如何获取一个已加载的Dll的入口函数地址(Address of DllMain)? RRS feed

  • 问题

  •     Windows在LoadLibrary时会调用Dll的入口函数(DllMain),现在我在写一个程序,需要手动调用DLL的入口函数,遇到了一个问题,就是不知道如何获取这个DLL的入口函数地址,DllMain也没有导出,无法用GetProcAddress实现,现在请教各位高手,如何能获取一个已加载的DLL的入口函数地址呢?恳请各位不吝赐教,谢谢!
    2010年7月13日 4:42

答案

全部回复

  • 如果您使用Depends 工具无法看到导出函数名称,那么这个动态库就是隐藏了自己的导出函数列表。 这样的话,只能是靠windbg 或者Dmpbin 去猜导出函数的位置了。
    2010年7月13日 6:10
    版主
  •     感谢。不过DLL的入口函数DllMain好像默认不导出。

        我发现一个函数:GetModuleInformation,由PSAPI.DLL导出,用它可以查询一个进程模块的基本信息,填充MODULEINFO结构,该结构中有一项为EntryPoint,不知这个是不是这个DLL模块的入口函数地址?请各位帮忙看看。

    2010年7月13日 7:15
  •  
     
    • 已标记为答案 Naylon 2010年7月13日 10:23
    • 已编辑 ID已删 2010年8月16日 4:41
    2010年7月13日 8:36
  • 好象是的,谢谢您!
    2010年7月13日 10:23