是否可以将DLL从进程内存导出/转储到文件?

时间:2015-07-18 01:59:03

标签: c# dll dump

首先我知道 1. Is it possible to export a dll definition from my AppDomain? 2. Is it possible to save a dynamic assembly to disk? 3. How can I extract DLL file from memory dump?

但这些似乎都没有回答我的问题。

请考虑以下情形:C#应用程序从内存流加载DLL(因此DLL不会直接暴露给用户)。是否有一个工具明确允许以特殊形式将特定DLL从内存转储或导出到磁盘?

注意:我希望有人向我展示从C#应用程序的内存转储中提取完整DLL的完整分步过程。

1 个答案:

答案 0 :(得分:9)

带有托管调试扩展的WinDbg能够实现这一功能。 首先,下载WinDbg(谷歌microsoft debugging tools for windows,它们不是独立下载,而是其他部分的工具包。)

下一部分是安装psscor2扩展程序(来自https://www.microsoft.com/en-us/download/details.aspx?id=1073)并将其解压缩到WinDbg所在的文件夹。

接下来,运行程序并将WinDbg附加到它(在菜单中)。键入以下命令:

  1. .load psscor2
  2. !SaveAllModules c:\modules\
  3. 找到你想要的模块并享受。