Debugger - lekarstwo na niebieski ekran

Instalacja i konfiguracja debugera

Debugger - lekarstwo na niebieski ekran

Więcej szczegółów o podejrzanym sterowniku możemy dostać, wywołując polecenie lmv

Jak już wspomniano WinDbg to darmowe narzędzie do ściągnięcia z witryny firmy Microsoft. Po jego ściągnięciu i zainstalowaniu możemy zabrać się za analizę zrzutu pamięci.

Z utworzonej w trakcie instalacji grupy Debugging Tools for Windows wybieramy i uruchamiamy WinDbg. Potrzebujemy jeszcze wybrać i załadować plik ze zrzutem pamięci oraz ściągnąć tablicę symboli potrzebną do przeprowadzenia analizy.

Tablica symboli jest produktem ubocznym kompilacji. W procesie kompilacji programu kod źródłowy jest tłumaczony z języka wysokiego poziomu na kod maszynowy. W tym samym czasie kompilator tworzy tablicę symboli zawierającą listę identyfikatorów ich lokalizacji w programie oraz ich atrybutów. Te identyfikatory to m.in. zmienne lokalne i globalne oraz odwołania funkcji. Sam program nie potrzebuje ich do pracy, są więc przechowywane w oddzielnym pliku, dzięki czemu można zredukować rozmiar pliku wykonywalnego. Oczywiście dzięki temu, że są mniejsze, zajmują mniej przestrzeni dyskowej i ładują się szybciej do pamięci operacyjnej. Ale gdy program spowoduje awarię, system zna tylko adres w pamięci, skąd pochodzi problem. My jednak potrzebujemy nieco większej wiedzy, by móc określić, który program korzystał z tego zakresu pamięci i co próbował robić. Odpowiedź na to jest właśnie w tablicy symboli. Jest ona trochę jak klucz do szyfru, którym jest zawartość zrzutu pamięci.

Pliki z tablicami symboli też są dostępne na stronach firmy Microsoft, co więcej nasz debuger potrafi automatycznie je stamtąd ściągać. Aby korzystać z tej opcji, potrzebujemy oczywiście połączenia internetowego i odpowiedniego skonfigurowania programu. Ustawia się ją wybierając menu File, następnie Symbol File Path, wpisując tam następujący ciąg znaków SRV*c:\symbols*http://msdl.microsoft.com/download/symbols

Gdzie "c:\symbols" możemy zastąpić dowolną nazwą foldera, w którym chcemy przechowywać te pliki. Przy takim ustawieniu debuger sam będzie pobierał potrzebne mu tablice znaków. Jeśli mamy jakieś oprogramowanie typu osobisty firewall, warto pamiętać o zezwoleniu na połączenie programu WinDbg z witrynąhttp://msdl.microsoft.com

Teraz już możemy załadować plik z obrazem pamięci. Wybieramy menu File, następnie Open Crash Dump. Wskazujemy plik i otwieramy. Ponieważ program musi ściągnąć odpowiednie tablice symboli, a dla zrzutów typu minidump również odpowiednie pliki binarne, operacja ta w zależności od łącza internę to wego może trwać nawet kilka i więcej minut.

Możemy zamknąć okno Disassembly - interesuje nas za to okno Command.

Jeśli zobaczymy jeden z komunikatów o błędzie:

"*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntoskrnl. exe"

bądź

"***** Kernel symbols are WRONG. Please fix symbols to do analysis."

to w takiej sytuacji warto sprawdzić, czy wprowadzona przez nas nazwa ścieżki jest wolna od literówek, czy mamy połączenie z Internetem oraz czy połączenie programu z witryną nie jest blokowane przez firewall.


TOP 200