Zine.net online

Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc
w Szukaj

mgrzeg.net - Admin on Rails :)

SaveModule a memory dump

W komentarzach do poprzedniego wpisu Sławek dopominał się o 'ciąg dalszy', więc może jako uzupełnienie dodam garść informacji odnośnie dostępności modułów w zrzutach pamięci analizowanego procesu.
Weźmy zatem aplikację testową z poprzedniego tekstu i przygotujmy zrzuty pamięci dla działającego procesu, a potem sprawdźmy co też możemy z nich wyłuskać odnośnie załadowanych modułów.

1. WinDbg
W WinDbg mamy polecenie .dump z wieloma parametrami określającymi zestaw informacji do zapisania w pliku zrzutu. Dla przykładu pełen zrzut wykonujemy następująco:

0:003> .dump /ma d:\dumps\test_full.dmp
Creating d:\dumps\test_full.dmp - mini user dump
Dump successfully written

I właściwie na tym powinienem zakończyć, ponieważ do pełnego wykorzystania wszystkich rozszerzeń dostępnych w sos tylko ten zrzut zapewnia komplet informacji. Jeśli tylko jest taka możliwość, to należy korzystać z tej opcji, chociaż wygenerowane pliki mogą być całkiem spore (standardowo dziesiątki MB).

2. Procexp
Od jakiegoś czasu procexp z sysinternals udostępnia możliwość wykonywania zrzutów pamięci dla procesu w dwóch wersjach: mini oraz full. W tym celu wystarczy zaznaczyć interesujący nas proces i z menu 'Process' wybrać 'Create Dump', a następnie wskazać interesujący nas typ zrzutu.

3. Task manager
Nie można zapomnieć o poczciwym menadżerze zadań, który począwszy od Visty udostępnia możliwość tworzenia zrzutów pamięci. Żeby wygenerować sobie zrzucik wystarczy na liście procesów zaznaczyć interesujący nas proces, prawa mysz i 'Utwórz plik zrzutu'.

Poniżej tabelka dostępności zewnętrznych modułów oraz samej aplikacji w zrzucie pamięci, zależnie od przyjętej metody zrzutu.

Polecenie Opcja Aplikacja.exe Zewnętrzne biblioteki
i
dodatkowe moduły
WinDbg .dump R - -
WinDbg .dump r + -
WinDbg .dump u + -
WinDbg .dump t + -
WinDbg .dump h + -
WinDbg .dump F + -
WinDbg .dump p + -
WinDbg .dump i + -
WinDbg .dump d + +
WinDbg .dump w + +
WinDbg .dump c + +
WinDbg .dump f + +
WinDbg .dump a + +
Procexp mini + +
Procexp full + +
Task manager   + +


Przy okazji pracy na zrzutach i ładowaniu sos trzeba koniecznie zwrócić uwagę na wersję mscordacwks.dll, ale to jest zdecydowanie temat na osobny wpis.

Na zakończenie dodam, że z plików zrzutu w których jest dostępna taka możliwość, można wyciągać zarówno moduły zarządzane jak i natywne załadowane do przestrzeni adresowej działającego procesu.

Miłej zabawy z plikami zrzutu! :) Na pewno wrócimy jeszcze do nich, w końcu często analiza sprowadza się właśnie do wyciągania informacji z memory dumpa.

Opublikowane 21 lutego 2011 16:02 przez mgrzeg
Filed under:

Powiadamianie o komentarzach

Jeżeli chciałbyś otrzymywać email gdy ta wypowiedź zostanie zaktualizowana, to zarejestruj się tutaj

Subskrybuj komentarze za pomocą RSS

Komentarze:

 

dotnetomaniak.pl said:

Dziękujemy za publikację - Trackback z dotnetomaniak.pl

lutego 21, 2011 18:26
 

maku said:

Zdecydowanie czekam na wpis o mscordacwks.dll ;)

lutego 25, 2011 14:06

Co o tym myślisz?

(wymagane) 
(opcjonalne)
(wymagane) 

  
Wprowadź kod: (wymagane)
Wyślij

Subskrypcje

W oparciu o Community Server (Personal Edition), Telligent Systems