我怎样才能提取内存转储DLL文件?(How can I extract DLL file from

2019-09-02 06:13发布

我有一个内存转储(非托管过程)。 我怎样才能提取物(使用WinDbg的)加载到进程中的DLL吗? 我的意思是,在实际保存dll文件到硬盘

Answer 1:

您可以使用WinDbg目录内sos.dll。

首先,加载在WinDbg中的sos.dll:

.load clr10\sos.dll

然后使用SAM或SaveAllModule提取特定的磁盘位置模块!:

!sam c:\notepad


Answer 2:

要提取DLL不使用SOS,使用如下.writemem扩展:

  1. 使用发现模块开始和结束地址lmvm dllname
    例如输出ieframe:
    start end module name
    61370000 61fb8000 ieframe

  2. 计算长度=端启动: ? 61fb8000 - 61370000 ? 61fb8000 - 61370000
    输出: Evaluate expression: 12877823 = 00c48000

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

这是不可能的,因为它是从磁盘加载的,解决这个了是不平凡的,给你确切的DLL。

(部分基于本文 )



Answer 3:

对,是真的。 的calc.exe也将拉动其多用户语言界面的信息并将其安装在内存中,也将很多Windows程序一样MSPAINT,photoviewer等。



文章来源: How can I extract DLL file from memory dump?
标签: windbg dump