用于查看可执行映像加载了哪些文件/dll 的实用程序
我知道有一个实用程序可以做到这一点,因为我曾经使用过它......只是不记得名字了。我正在寻找一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
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.
使用进程监视器或进程资源管理器。
use Process Monitor or Process Explorer.
命令行路径是来自 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.
我们可以使用 Microsoft 的
任务列表
。例如,要使用程序名称显示加载的 DLL,请执行以下操作:其中指定的选项如下:
如果是 Windows 服务,请使用过滤器
services
。例如,要查找服务Winmgmt
的所有 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:where the specified options are as below:
If it is a Windows service, use filter
services
. E.g. to find all DLLs for serviceWinmgmt
, use this:值得一提的一个非常有用的工具是 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.