如您所知,如果对LoadLibrary的调用指定已映射到调用进程的地址空间的DLL模块,则该函数只返回DLL的句柄并递增模块的引用计数.
在某个地方,我需要得到一个dll的引用计数.如何获取dll的引用计数?如何知道dll的加载位置?谢谢.
如果这是非编程方式(感谢C.Johnson提供了这一观点),则WinDBG可能会有所帮助
http://windbg.info/doc/1-common-cmds.html#10_modules
查看!dll及其变体。
!dll-具有负载计数的所有已加载模块
编辑2:
如果您想知道从哪里从进程中加载所有DLL,有两种方法:
一种。看命令
“ bu kernel32!LoadLibraryExW”;作为/ mu $ {/ v:MyAlias} poi(@ esp + 4); .if($ spat(\“ $ {MyAlias} \”,\“ MYDLL \”)!= 0){kn; } .else {g}“”
在上述网址中
b。在WinDBG下运行该过程。调试->甚至过滤器,然后选择“加载模块”,然后在“执行”下将其设置为“启用”。在“继续”下,将其设置为“未处理”。
其中之一应该可以帮助您。
| 归档时间: |
|
| 查看次数: |
9762 次 |
| 最近记录: |