Visual Studio 用于查看可执行映像加载了哪些文件/dll的实用程序

llew8vvj  于 2023-01-17  发布在  其他
关注(0)|答案(4)|浏览(166)

我知道有一个实用程序,因为我曾经使用它...只是不记得名称。我正在寻找一个Windows(Windows-7)实用程序,它将允许我选择一个可执行映像运行,并告诉我该程序已加载哪些文件/dll,从哪个目录。我正在Visual Studio中编写软件,并希望在运行时验证我的程序正在加载哪些dll。

d7v8vwbk

d7v8vwbk1#

Visual Studio做得很好。使用工具〉附加到进程,调试〉全部中断。然后调试〉窗口〉模块。对于VS2015+,从调试〉附加到进程开始。

u0njafvf

u0njafvf3#

命令行路由是来自Sysinternals的ListDLLs
它可以列出进程加载的DLL,也可以列出加载给定DLL的进程。

eeq64g8w

eeq64g8w4#

我们可以使用微软的tasklist来代替安装任何第三方工具。例如,要使用程序名显示加载的DLL,请执行以下操作:

C:\>tasklist /m /fi "imagename eq PacketAnalyzerPlus.exe"

Image Name                     PID Modules
========================= ======== ============================================
PacketAnalyzerPlus.exe        3904 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll

其中指定的选项如下:
/m-列出加载了与给定模式名称匹配的DLL模块的所有任务。如果未指定模块名称,则此选项显示每个任务加载的所有模块。
/fi-指定要包含在查询中或从查询中排除的进程类型。可以使用多个筛选器或使用通配符()指定所有任务或映像名称。
如果是Windows服务,请使用筛选器services。例如,要查找服务Winmgmt的所有DLL,请使用以下命令:

C:\>tasklist /m /fi "services eq Winmgmt"

Image Name                     PID Modules
========================= ======== ============================================
svchost.exe                    872 ntdll.dll, kernel32.dll, KERNELBASE.dll,
                                   msvcrt.dll, sechost.dll, RPCRT4.dll,
                                   ole32.dll, GDI32.dll, USER32.dll, LPK.dll,
                                   USP10.dll, IMM32.DLL, MSCTF.dll,...

相关问题