2

如何从给定内存地址获取内存转储,格式如下:

  Address   |           Hexadecimal representation              | ASCII representation
---------------------------------------------------------------------------------------
0x637132687 | 00 00 00 00 00 00 00 00   45 21 65 78 32 F5 12 6C |  ....... ahsnfdas
0x637132703 | 00 00 00 00 00 00 00 00   45 21 65 78 32 F5 12 6C |  ....... ahsnfdas
0x637132719 | 00 00 00 00 00 00 00 00   45 21 65 78 32 F5 12 6C |  ....... ahsnfdas
0x637132735 | 00 00 00 00 00 00 00 00   45 21 65 78 32 F5 12 6C |  ....... ahsnfdas

你知道这项工作的任何 API/框架/工具吗?

4

2 回答 2

2

您将需要 Marshal.CopyMemory() 和此代码。P/Invoking VirtualQueryEx() 以确保内存地址有效将是避免异常的好主意。

于 2010-05-15T17:33:17.217 回答
1

当然可以使用 WinDbg 来完成。老实说,我不是使用它的向导,但来自 Microsoft 的 Tess Ferrandez 是并且有一个关于使用 WinDbg 调试 .NET 应用程序的优秀博客。

看起来你只是想浏览一个普通的内存转储,这应该很简单。如果您想进一步检查任何内容(关于 .net),您应该使用 WinDbg 的 SOS 扩展。

于 2010-05-15T17:06:20.410 回答