如何查找加载到进程中的 DLL 及其位置等

发布于 2024-09-13 14:13:19 字数 144 浏览 4 评论 0原文

我使用过 Process Explorer,但我忘记了另一个实用程序,它可以让您查看进程从何处加载(图像文件),以及内存中的 dll 以及它们从何处加载。

Process Explorer 对我来说仅适用于托管程序集。

还有什么是原生的吗?

I've used Process Explorer, but I'm forgetting of another utility that lets you see where a process is loaded from (image file), and it's dll's in memory and where they got loaded from.

Process Explorer for me is only working for managed assemblies.

Anything that does native as well?

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

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

发布评论

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

评论(3

肤浅与狂妄 2024-09-20 14:13:19

Process Explorer 应该向您显示本机模块和托管模块。尝试提升运行它。

否则,有几种方法:

  1. 使用 tlist.exe,它是调试工具的一部分对于 Windows 软件包(例如 tlist cmd.exe
  2. 附加 VS 调试器并在模块窗口中查找(Ctrl+Alt+ U)或附加 WinDbg 并使用 lm 命令
  3. 使用 CreateToolhelp32SnapshotModule32FirstModule32Next 推出您自己的解决方案:)

Process Explorer should show you both native and managed modules. Trying running it elevated.

Otherwise, there are a few ways:

  1. Use tlist.exe, part of the Debugging Tools for Windows package (e.g. tlist cmd.exe)
  2. Attach the VS debugger and look in the modules window (Ctrl+Alt+U) or attach WinDbg and use the lm command
  3. Use CreateToolhelp32Snapshot, Module32First, and Module32Next to roll your own solution :)
月光色 2024-09-20 14:13:19

还有一个开源工具“Process Hacker”。

它是一个高级任务管理器。
选择任何进程,按“Enter”,选择“模块”选项卡。

There's also an open-source tool "Process Hacker".

It's an advanced task manager.
Select any process, hit "Enter", choose "Modules" tab.

旧人九事 2024-09-20 14:13:19

Windows Sysinternals 中的 ListDLLs 是一个命令行工具,可以完成您的任务寻找:

Listdlls.exe notepad.exeListdlls.exe 11524给出:

------------------------------------------------------------------------------
notepad.exe pid: 11524
Command line: "C:\WINDOWS\system32\notepad.exe"

Base                Size      Path
0x00000000bfae0000  0x38000   C:\WINDOWS\system32\notepad.exe
0x00000000aee10000  0x1f5000  C:\WINDOWS\SYSTEM32\ntdll.dll
0x00000000ad4c0000  0xbd000   C:\WINDOWS\System32\KERNEL32.DLL
0x00000000ac9a0000  0x2c8000  C:\WINDOWS\System32\KERNELBASE.dll
<snip>
0x0000000093580000  0xf9000   C:\WINDOWS\SYSTEM32\textinputframework.dll
0x00000000aebc0000  0x6b000   C:\WINDOWS\System32\WS2_32.dll
0x00000000aaf00000  0x33000   C:\WINDOWS\SYSTEM32\ntmarta.dll

Listdlls.exe -d textinputframework.dll给出:

<snip>
------------------------------------------------------------------------------
notepad.exe pid: 11524
Command line: "C:\WINDOWS\system32\notepad.exe"

Base                Size      Path
0x0000000093580000  0xf9000   C:\WINDOWS\SYSTEM32\textinputframework.dll

Listdlls.exe(不带参数)输出所有正在运行的进程的dll。

ListDLLs from Windows Sysinternals is a command line tool that does what you are looking for:

Listdlls.exe notepad.exe or Listdlls.exe 11524 give:

------------------------------------------------------------------------------
notepad.exe pid: 11524
Command line: "C:\WINDOWS\system32\notepad.exe"

Base                Size      Path
0x00000000bfae0000  0x38000   C:\WINDOWS\system32\notepad.exe
0x00000000aee10000  0x1f5000  C:\WINDOWS\SYSTEM32\ntdll.dll
0x00000000ad4c0000  0xbd000   C:\WINDOWS\System32\KERNEL32.DLL
0x00000000ac9a0000  0x2c8000  C:\WINDOWS\System32\KERNELBASE.dll
<snip>
0x0000000093580000  0xf9000   C:\WINDOWS\SYSTEM32\textinputframework.dll
0x00000000aebc0000  0x6b000   C:\WINDOWS\System32\WS2_32.dll
0x00000000aaf00000  0x33000   C:\WINDOWS\SYSTEM32\ntmarta.dll

Listdlls.exe -d textinputframework.dll give:

<snip>
------------------------------------------------------------------------------
notepad.exe pid: 11524
Command line: "C:\WINDOWS\system32\notepad.exe"

Base                Size      Path
0x0000000093580000  0xf9000   C:\WINDOWS\SYSTEM32\textinputframework.dll

Listdlls.exe (without parameters) outputs the dlls of all running processes.

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