Xeinaemm 115 Napisano 26 Sierpnia 2018 Udostępnij Napisano 26 Sierpnia 2018 W poradniku [FAQ]Diagnostyka Komputera opisałem podstawowe zagadnienia związane z komputerami oraz jak testować komputer. Jednak co w wypadku, kiedy Windows jest naprawdę uciążliwy i nie chce się naprawić i nie możemy nijak tego zdiagnozować? Dzisiaj na warsztat bierzemy narzędzie nazwane Sysinternals Suite, prawa ręka każdego administratora, programisty od optymalizacji, jednak również zwykłego użytkownika. Sysinternals Suite jest zbiorem ponad 70 mini programów do zarządzania systemem Windows, które zostały stworzone przez Marka Russinovich. Programy w nim zawarte są w stanie wykryć problemy wydajnościowe, wycieki pamięci, malware, spyware, wirusy. Dają ogromny obraz tego, co się dzieje z naszym systemem, gdzie menedżer zadań czy konfiguracja systemu się kończy, tam zaczyna się Sysinternals Suite. Są to darmowe narzędzia wspierane przez Microsoft i co ważne, działają na każdym komputerze z Windowsem. Autoruns Autoruns jest narzędziem, dzięki któremu jesteśmy w stanie dowiedzieć się jakie usługi, programy, biblioteki uruchamiają się razem ze startem systemu. Kategorie Aplikacja dzieli usługi na kategorie: Everything – czyli wszystko, co system uruchamia. Logon – standardowe lokalizacje usług z automatycznym startem, czyli folder użytkownicy, folder startowy, rejestr kluczy oraz domyślne foldery aplikacji. Internet Explorer - pliki pomocnicze, rozszerzenia do kochanego IE Scheduled Tasks – zadania, które uruchamiają się co pewien okres np. co 1h i znajdują się w zakładkach Logon i Boot Execute. Services – usługi, które mają ustawiony automatyczny start wraz z systemem. Drivers – włączone sterowniki obsługujące komponenty komputera takie jak USB, CPU, GPU o najwyższych prawach dostępu do nich (kernel-mode). Explorer – programy, które posiadają GUI i w momencie uruchomienia odpalają powłokę systemu Windows np. pulpit, WinRAR, menu start. AppInit DLLs – biblioteki, które uruchamiają aplikacje. Boot Execute – natywne usługi, które uruchamiają się podczas rozruchu komputera przed uruchomieniem systemu. Image Hijacks – usługi uruchamiane z poziomu wiersza poleceń z opcjami, z jakimi się uruchamiają. Known DLLs - biblioteki, jakie system Windows ładuje wraz ze startem usług. Winlogon – biblioteki, które zostały zarejestrowane podczas wydarzeń w Logon. Winsock Providers – zarejestrowane protokoły dla programów sieciowych, często malware rejestruje się jako jeden z nich. LSA Providers – paczki bezpieczeństwa, poświadczeń usług oraz notyfikacji. Print Monitors – biblioteki potrzebne do buforowania plików, aby można było je wydrukować, malware często używa tego typu bibliotek. Analiza systemu Narzędzie posiada wbudowany system do sprawdzenia konfiguracji rozruchowej systemu Windows. Wystarczy podpiąć dysk do komputera z tym programem i przejść do File -> Analyze Offline System… a następnie wskazać folder Windows na drugim dysku. Program analizuje i wyświetla wszystkie programy, które uruchamiają się podczas rozruchu i w razie znalezienia przyczyny istnieje możliwość eliminacji usługi, która powoduje problemy. Tryb można wzbogacić o opcje, a dokładniej w Options -> Scan Options… można włączyć: Scan only per-user locations – wyświetla usług tylko z folderu użytkownika przy pominięciu reszty systemu. Verify code signatures – sprawdza, czy dana usługa została zweryfikowana tj. czy należy do zaufanego dostawcy np. Microsoft. Check VirusTotal.com – każda usługa przejdzie przez testy online w VirusTotal i w kolumnie obok usługi wyświetli wynik. Submit Unknown Images – opcja, która pozwala przesłać próbkę danych do VirusTotal w celu jej analizy, jeśli nie posiadają takowej w bazie. BgInfo Bginfo jest programem do tworzenia zrzutów ekranu wraz z konfiguracją naszego systemu. Program po uruchomieniu i braku reakcji przez 10 sekundach załaduje na pulpit nowe zdjęcie ze specyfikacją naszego systemu. Przydatne narzędzie, jeśli często używasz specyfikacji swojego komputera lub nie wiesz jak znaleźć takie informacje. Desktops Aplikacja, która pozwala stworzyć trzy dodatkowe wirtualne pulpity poza głównym, gdzie na każdym możemy robić coś innego. Program ładuje się do zasobnika w prawym dolnym rogu i w celu stworzenia nowego pulpitu wystarczy kliknąć ikonę oraz wybrać nowy pulpit. Program przeniesie nas na pusty ekran. Możemy przełączać się między pulpitami za pomocą CTRL+1,2,3,4. NotMyFault Program dla osób, które lubią pastwić się nad swoim komputerem. Jeśli interesują Cię BSoD’y czy programy do analizy komputera, to ten program wywoła dla Ciebie odpowiednie zachowanie. Posiada trzy tryby: Crash – osiem sposobów na BSoD, od namieszania w jądrze systemu, aż po przeładowanie systemu liczbami. Hang – prosty sposób na zawieszenie komputera, gdzie tylko hard reset pomoże. Leak – zapełnienie pamięci bezużytecznymi danymi, czyli wyciek pamięci. Process Explorer Process Explorer jest bardzo rozbudowanym bratem Menedżera zadań. Jak bardzo rozbudowanym? Mamy dostęp do ponad 160 wskaźników podzielonych na kategorie i widzimy je w postaci kolejnych kolumn. Zbierane dane W zakładce View-> Select Columns… istnieją następujące kategorie: Process Image – są to podstawowe wskaźniki o procesie, który jest uruchomiony. Process Performance – wskaźniki, które mierzą wydajność i zużycie CPU. Status Bar – właściwości komputera tj. ilość procesów, zużycie CPU, ilość wątków. Wskaźniki pojawiają się na pasku na samym dole programu. Process I/O – informacje nt. zapisów i odczytów danych z dysku. Process GPU – zużycie GPU oraz jego pamięci. Process Memory – informacje nt. pamięci i co się z tymi danymi dzieje, kiedy przetwarza je CPU oraz jak system optymalizuje pamięć. DLL – informacje o bibliotekach tj. plikach z końcówką .dll. Można je podejrzeć klikając na proces i wciskając CTRL+D. Handle – informacje nt. plików, katalogów tylko, że z punktu widzenia systemu, czyli adresów w systemie szesnastkowym, kluczy dostępu czy nazw np. Chrome.exe. Klikając na proces, a potem CTRL+H załadujemy panel. .NET – wskaźniki przydatne deweloperom .NET, którzy optymalizują aplikacje pod wydajność. Znaczenie kolorów Każdy proces ma przypisany kolor, który zmienia się co jakiś czas a dokładniej: Zielony – nowo powstały proces. Czerwony – proces został usunięty, skończył się. Jasnofioletowy – nasze procesy tj. programy, które działają na naszym obecnym koncie. Łososiowy – działające usługi np. Svchost.exe. Ciemnoszary – zawieszone usługi. Fioletowy – spakowane, zhermetyzowane procesy, warto uważać, ponieważ mogą zawierać zawirusowane programy, malware, lub spyware. Jasnożółty – procesy oparte o platformę .NET Framework. Pomarańczowy – główne procesy nazwane zadaniami, które używają innych procesów np. Chrome.exe. Jasnoniebieski – programy Windows 8/10 np. Microsoft Store czy Zdjęcia. Proces Klikając PPM na procesie ukażą się funkcje: Set Affinity… - na komputerach z wieloma procesorami pozwala przypisać wątki do konkretnego procesora. Set Priority – zmiana priorytetu danego procesu, w zależności od ustawienia, system ustawi go wyżej lub niżej w hierarchii, co spowoduje, że procesy wyżej w hierarchii będą miały pierwszeństwo do zasobów systemowych i stabilniejsze działanie kosztem reszty. Kill Process (Tree) – obie funkcje pozwalają na natychmiastowe zatrzymanie pracy procesu oraz jego dzieci, jeśli je posiada. Restart – usunięcie starego procesu i stworzenie nowego w jego miejscu, restart może spowodować zmiany w systemie ze względu na możliwość uruchomienia się na innym użytkowniku lub w innym środowisku. Suspend – wstrzymanie procesu w celu zwolnienia zasobów przez niego wykorzystywanych. Debug – funkcja przewidziana dla programistów do testowania oprogramowania w czasie rzeczywistym np. za pomocą Visual Studio. Create Dump – zrzut pamięci, czyli informacje o procesie od strony pamięci oraz kodu w assemblerze. Properties – informacje o procesie z bardziej szczegółowymi danymi. Search Online – funkcja, która przeszukuje Internet w poszukiwaniu za określoną nazwą procesu. Właściwości procesu Bardziej szczegółowe informacje nt. procesu znajdziemy, gdy klikniemy proces PPM -> Properties. Widok dzieli się na: Image – informacje wyciągnięte z właściwości procesu, tylko skondensowane w jedną zakładkę. Sprawdza, czy proces został podpisany przez wiarygodne źródło, jeżeli zamiast (Verified) pojawi się (Image is probably packed) w wielu wypadkach oznacza to wirusa, spyware lub malware. Performance – informacje o wydajności CPU oraz pamięci wraz z pamięcią fizyczną i wirtualną. Performance Graph – historia użycia CPU oraz alokacji pamięci przez procesor. Kolor czerwony na wykresie oznacza, że procesor wykonuje operacje na pamięci oraz urządzeniu bezpośrednio mając do nich dostęp (wszystkie prawa, najbardziej zaufane funkcje komputera, czyli tzw. kernel-mode). Zielony oznacza wykonanie operacji z najmniejszymi prawami do pamięci i urządzenia, może jedynie wywołać niektóre stworzone funkcje (user-mode). GPU Graph – historia zużycia GPU i jego pamięci. Services – lista usług, które aplikacja wykorzystuje. Threads – ilość wątków, jakie dany proces obsługuje w celu wykonania operacji oraz w celu optymalizacji działania m.in., aby uruchomić je na wielu rdzeniach procesora. Przycisk Module uruchamia właściwości danej biblioteki lub pliku wykonawczego. Przycisk Stack pokazuje jakie zadania do wykonania ma konkretny wątek. TCP/IP – aktywne połączenia za pomocą TCP lub UDP z zewnętrznymi adresami np. z IP forum.benchmark.pl po wejściu na stronę główną za pomocą Google Chrome. Security – przywileje danego procesu, co może wykonać w jakim miejscu i z jakimi prawami, można odebrać mu tutaj prawa. Environment – zmienne, które posiadają w sobie lokalizacje konkretnych usług, katalogów w systemie, które proces wykorzystuje, aby np. wykonać skrypt w CMD lub przeszukać pulpit i są na tyle ogólne, że każdy proces ma do nich dostęp. Strings – użyte przez proces łańcuchy znaków. .NET Assemblies – biblioteki, moduły z .NET Framework wykorzystane przez aplikacje. Zakładka pojawi się tylko, jeśli aplikacja jest oparta o .NET Framework. .NET Performance – informacje o procesie, wykorzystywane środowisko uruchomieniowe (CLR) i aspekty przydatne dla .NET deweloperów. Tak jak wyżej, zakładka pojawi się tylko, jeśli aplikacja jest oparta o .NET Framework. Process Monitor Process Monitor jest narzędziem do monitorowania rejestru, plików, procesów oraz wątków w czasie rzeczywistym. Pozwala znaleźć każdy problem w systemie oraz wyśledzić malware, ponieważ przechodzą przez niego wszystkie zdarzenia zaistniałe w systemie. Dokładniejszego narzędzia diagnostycznego nie znajdziesz w sieci, program zbiera informacje o wszystkim. Zwykłe uruchomienie menu start na Windows 10 generuje ponad 20 tys. rekordów, opisujących jakie wydarzenia zaszły w systemie. Aktywności Program pozwala podzielić wydarzenia na aktywności według miejsca, gdzie wystąpiło: Registry – zmiany rejestrze kluczy. File System – zmiany w plikach, również tych zdalnych oraz sposoby użycia plików. Network – wszystkie aktywności TCP i UDP, dane wysłane, odebrane oraz operacje od źródła aż do miejsca przeznaczenia. Process – zmiany w procesach, wątkach, bibliotekach (DLL) i sterownikach. Profiling – zużycie CPU każdego procesu w kernel-mode oraz user-mode, ilość przełączeń kontekstu przez procesor. Zbierane dane Aplikacja dzieli informacje na trzy główne kategorie: Application Details – informacje o procesie, nazwie, architekturze, ścieżce do pliku wykonawczego czy jak uruchomić go z poziomu wiersza poleceń. Event Details – informacje o tym, jaką czynność dany proces wykonał np. zapis do pliku, zmiana wpisu w rejestrze. Process Management – informacje o tym, do jakiego użytkownika należy proces, jego numer poświadczenia czy numer procesu (PID) Dostęp do dodatkowy funkcji mamy poprzez Options -> Select Columns… Zdarzenia Tak właściwie to wszystkie rekordy w tej aplikacji są zdarzeniami, które miały miejsce w systemie. Każde wydarzenie posiada kilka funkcji, które w łatwy sposób pozwalają przefiltrować je i wyciągnąć z nich informacje. Wartę uwagi funkcje to: Properties – zbiorcze informacje nt. zdarzenia, czyli te, które są dostępne kolumnach razem z informacjami ze Stack. Stack – wskazuje jakie operacje na wątkach zostały wykonane podczas nagrania wydarzenia w K (kernel-mode) lub U (user-mode). Jump To… - otworzenie w eksploratorze Windows miejsca, gdzie znajduje się plik, który wykonał zdarzenie. Include/Exclude – funkcje do dodawania filtrów, przykładem szybkiego filtru na kolumnie jest w tym wypadku WINWORD.EXE. Kliknięcie różnych kolumn dla tego samego rekordu spowoduje wyświetlenie różnych słów kluczy, dzięki którym możemy szybko filtrować zdarzenia. Highlight – podświetla wszystkie zdarzenia, które posiadają taką samą kolumnę np. nazwa czy architektura. Tak jak wyżej kliknięcie różnych kolumn wyświetli różne wyniki. Przetwarzanie zdarzeń Program pozwala tworzyć własne filtry i taka funkcjonalność jest dostępna w zakładce Filter -> Filter…lub wciskając CTRL+L. Filtrowanie wymaga podstawowych operacji logicznych, więc każdy jest w stanie stworzyć własny filtr. Domyślnie program podczas filtrowania nie usuwa zdarzeń, dlatego można z tych samych danych wyciągnąć różne wyniki filtrowania. Istnieje jednak opcja filtrowania destrukcyjnego, gdzie zdarzenia niezawarte w filtrze zostają usunięte. Taką opcję można włączyć w Filter -> Drop Filtered Events. Również ciekawą opcją jest tworzenie podsumowań według aktywności. Są to funkcje dostępna w zakładce Tools z dopiskiem Summary. TCPView TCPView jest programem, który pozwala śledzić połączenia z naszym komputerem za pomocą protokołów TCP i UDP. Nowe połączenia oznaczone są na zielono, czerwonym oznaczone zostały wszystkie usunięte połączenia oraz żółtym zmiany stanu połączenia np. z nasłuchiwanie na ustanowiony. ZoomIt ZoomIt jest przydatny podczas przeprowadzania prezentacji. Posiada tryb, który w czasie rzeczywistym pozwala rysować po ekranie, wystarczy wcisnąć CTRL+2. Podczas rysowania możemy zmienić kolor markera wciskając R (czerwony), G (zielony), B (niebieski), O (pomarańczowy), P (różowy). Dodatkowo, kółko myszy (grubość), SHIFT+LPM (rysowanie prostych linii), CTRL+LPM (kształty), TAB+LPM (elipsa), SHIFT+CTRL (strzałka) lub ustawić cały ekran W (biały) lub K (czarny). Zmiany można cofnąć za pomocą CTRL+Z (cofnięcie jednej czynności), E (wyczyszczenie wszystkiego) lub CTRL+S (zapisanie). Dodatkowo tryb rysowania wspiera pisanie na ekranie tj. przy kliknięciu T mamy możliwość wprowadzenia tekstu. Pod CTRL+3 mamy stoper, a tryb przybliżenia jest dostępny pod CTRL+4 wystarczy wycelować w miejsce, które chcemy przybliżyć. RAMMap RAMMap jest programem, dzięki któremu jesteśmy w stanie dowiedzieć się jak Windows zarządza RAM-em, gdzie go przydziela, jak oraz po co. Aplikacja dzieli informacje nt. RAM-u według kategorii: Use Counts – podsumowanie zużycia pamięci według typu oraz fragmentacji Processes – zużycie RAM-u według procesów. Priority Summary – podział pamięci w buforze (pliki kiedyś załadowane, ale obecnie nieużywane) według priorytetów wraz z ilością pamięci w nich. Physical Pages – wszystkie adresy fizyczne pamięci z przypisanymi do nich danymi (lub nie). Physical Ranges – adresy fizyczne od-do według przynależności do rodzaju wykorzystanej pamięci. File Summary – przypisana pamięć RAM według plików. File Details – adresy fizyczne pamięci według plików. Wytłumaczenie zasady działania pamięci fizycznej oraz wirtualnej wybiega poza poziom tego poradnika, jednak warto zapamiętać, że pamięć w kolumnie Bad oznacza uszkodzony RAM. Program pozwala również zwolnić pamięć według rodzaju, wszystkie możliwe opcje znajdują się w zakładce Empty. VMMap VMMap jest programem do analizy pamięci fizycznej oraz wirtualnej konkretnego procesu, który mu przypiszemy. W większości wykorzystywany do szukania wycieków pamięci poprzez tworzenie migawek i analizowanie zmian w czasie. 3 Link to post Share on other sites
Recommended Posts