如何从内存转储中提取 DLL 文件?

发布于 2024-08-09 05:53:50 字数 75 浏览 4 评论 0原文

我有一个内存转储(非托管进程)。 如何提取(使用 Windbg)加载到进程中的 dll 之一?我的意思是实际上将dll文件保存到磁盘中

I have a memory dump (unmanaged process) .
How can I extract (using windbg) one of the dlls loaded into the process ? I mean actually saving the dll file into the disk

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

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

发布评论

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

评论(3

夜血缘 2024-08-16 05:53:50

您可以使用windbg目录中的sos.dll。

首先,在 Windbg 中加载 sos.dll:

.load clr10\sos.dll

然后使用 !sam 或 !SaveAllModule 将模块提取到特定磁盘位置:

!sam c:\notepad

You can use the sos.dll inside windbg directory.

First, load the sos.dll in windbg:

.load clr10\sos.dll

Then use !sam OR !SaveAllModule to extract the modules on specific disk location:

!sam c:\notepad
风尘浪孓 2024-08-16 05:53:50

要在不使用 SOS 的情况下提取 DLL,请使用 .writemem 扩展名,如下所示:

  1. 使用lmvm dllname
    发现模块起始地址和结束地址
    ieframe 的输出示例:
    开始结束模块名称
    61370000 61fb8000 ieframe

  2. 计算长度=结束-开始:? 61fb8000 - 61370000
    输出:计算表达式:12877823 = 00c48000

  3. 然后按如下方式保存 DLL:
    .writemem C:\tmp\mydll.dll 61370000 L?00c48000

这不太可能为您提供确切的 DLL,因为它是从磁盘加载的,修复此问题并不简单。

(部分基于本文)

To extract a DLL without using SOS, use the .writemem extension as follows:

  1. discover the module start and end addresses using lmvm dllname
    example output for ieframe:
    start end module name
    61370000 61fb8000 ieframe

  2. calculate the length = end-start: ? 61fb8000 - 61370000
    output: Evaluate expression: 12877823 = 00c48000

  3. then save the DLL as follows:
    .writemem C:\tmp\mydll.dll 61370000 L?00c48000

This is unlikely to give you the exact DLL as it was loaded from disk, fixing this up is non-trivial.

(Partly based on this article)

倾城°AllureLove 2024-08-16 05:53:50

是的,这是真的。 calc.exe 还将提取其多用户语言界面信息并将其附加到内存中,许多 Windows 程序(如 mspaint、photoviewer 等)也是如此。

Yes, it's true. calc.exe will also pull up its multi user language interface information and attach it in memory, as will a lot of Windows programs like mspaint, photoviewer, etc.

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