Comment faire un vidage de la mémoire en .net?
-
27-09-2019 - |
Question
Comment obtenir une image mémoire à partir d'une adresse mémoire donnée dans le format suivant:
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
Connaissez-vous des API / cadre / outil pour le travail?
La solution
Vous aurez besoin Marshal.CopyMemory () et cette Code . P / Invoquer VirtualQueryEx () pour assurer que les adresses de mémoire sont valides serait une bonne idée d'éviter des exceptions.
Autres conseils
Il peut certainement être fait en utilisant WinDbg. Honnêtement, je ne suis pas un magicien, mais en utilisant Tess Ferrandez de Microsoft est et a excellent blog sur l'utilisation WinDbg pour déboguer les applications .NET.
Il semble que vous voulez juste parcourir une image mémoire normale, qui devrait être assez simple. Si vous voulez examiner quelque chose de plus (en ce qui concerne .net), vous devez utiliser les extensions SOS pour WinDbg.