Как сделать дамп памяти в .net? - PullRequest
2 голосов
/ 15 мая 2010

Как получить дамп памяти с заданного адреса памяти в формате:

  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 / framework / инструмент для работы?

Ответы [ 2 ]

2 голосов
/ 15 мая 2010

Вам понадобится Marshal.CopyMemory () и этот код . P / Invoking VirtualQueryEx (), чтобы убедиться, что адреса памяти действительны, было бы хорошей идеей, чтобы избежать исключений.

1 голос
/ 15 мая 2010

Конечно, это можно сделать с помощью WinDbg. Честно говоря, я не волшебник, использующий его, но у Тесс Феррандез из Microsoft есть и есть отличный блог об использовании WinDbg для отладки приложений .NET.

Кажется, вы просто хотите просмотреть обычный дамп памяти, который должен быть довольно простым. Если вы хотите изучить что-то еще (в отношении .net), вы должны использовать расширения SOS для WinDbg.

...