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

发布于 2024-10-19 07:17:26 字数 178 浏览 2 评论 0原文

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

I know there is a utility for this because I used to use it...just can't remember the name. I'm looking for a Windows (Windows-7) utility that will allow me to select an executable image running and have it tell me what files/dlls that program has loaded and from what directory. I am writing software in Visual Studio and would like to verify at runtime which dlls my program is loading.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

赢得她心 2024-10-26 07:17:26

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

Visual Studio does it well. Use Tools > Attach to Process, Debug > Break All. Then Debug > Windows > Modules. For VS2015+ start that with Debug > Attach to Process.

耀眼的星火 2024-10-26 07:17:26

命令行路径是来自 Sysinternals 的 ListDLLs

它可以列出进程加载的 DLL,或列出加载给定 DLL 的进程。

The command line route is ListDLLs from Sysinternals.

It can list DLLs loaded by a process, or list processes that loaded a given DLL.

明明#如月 2024-10-26 07:17:26

我们可以使用 Microsoft 的 任务列表。例如,要使用程序名称显示加载的 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,...

Instead of installing any third-party tools, we could use Microsoft's tasklist. E.g., to display the loaded DLLs for a program using its name, do this:

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

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

where the specified options are as below:

/m <module> - Lists all tasks with DLL modules loaded that match the given pattern name. If the module name is not specified, this option displays all modules loaded by each task.

/fi <filter> - Specifies the types of processes to include in or exclude from the query. You can use more than one filter or use the wildcard character () to specify all tasks or image names.

If it is a Windows service, use filter services. E.g. to find all DLLs for service Winmgmt, use this:

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,...
空心↖ 2024-10-26 07:17:26

值得一提的一个非常有用的工具是 https://www.dependencywalker.com/ 对于找到的每个模块,它列出了该模块导出的所有函数。
输入图片此处描述

A very useful tool worth mentioning is https://www.dependencywalker.com/ which for each module found, it lists all the functions that are exported by that module.
enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文