warcraft 3 TFT + ROC, warcraft III,

Replaysowa strzałka Polskie Centrum Replayów - top
Replay Tygodnia / Best Replay
Nie ma żadnych replayów spełniających te wymogi.

Rozwiązywanie problemów z programami i Windows

Rozwiązywanie problemów z programami i systemem operacyjnym Windows.
 
W tym artykule dowiecie się przede wszystkim jak używać zaawansowanych narzędzi śledzących programy w systemie. Wyniki ich działania przedstawię na podstawie kilku bardzo popularnych programów: Gadu-Gadu, Skype, Adobe Acrobat, Daemon-Tools, PunkBuster i oczywiście gry Warcraft III. Można też użyć tych narzędzi do usuwania spyware i wirusów.
 
Na dawnej stronie Sysinternals znajdują się Process Explorer, Process Monitor i Autoruns (dziś link prowadzi do Microsoft, który wykupił tą firmę – obecnie jej pracownicy zajmują się m.in. udoskonalaniem drobnych, ale ważnych rzeczy dla przyszłych systemów operacyjnych, takich jak menadżer zadań). Zacznę od Process Explorer – jest to zamiennik menadżera zadań skierowany do programistów (nie zobaczycie go nigdy jako standard, bo byłby zbyt trudny do zrozumienia i chaotyczny dla przeciętnego użytkownika). Program pozwala podejrzeć kilka rzeczy, które normalnie nie są w naszym obszarze zainteresowań. Ten artykuł jest właśnie na temat niezwykłych i problematycznych sytuacji.
 
Normalnie oczekujemy czegoś takiego: użytkownik uruchamia program znajdujący się fizycznie na dysku, system ładuje go do pamięci i już można z niego korzystać, nic więcej nas nie interesuje. W tle dzieją się jednak ważne rzeczy, które mogą powodować problemy. Zanim program zostanie faktycznie uruchomiony, odczytane są z dysku jego zależności (głównie pliki dll) i załadowane zanim przekazana zostanie kontrola do faktycznego kodu. Co gorsza, niektóre z tych rzeczy są załadowane zanim jeszcze w ogóle cokolwiek zostanie uruchomione. W tym momencie polecam skorzystanie z narzędzia Autoruns. Jak sama nazwa wskazuje, jest to program przeznaczony wyłącznie do przeglądania wszystkich miejsc, w których może nastąpić niejawne, automatyczne uruchomienie jakiejś zależności (pliku dll) lub nawet programu. Wystarczy spojrzeć na liczbę zakładek, żeby się załamać:

AppInit – relikt starszych wersji Windows. Określa dllki, które zostaną załadowane, jeśli program zażąda systemowej dllki user32.dll. Na nieszczęście zwykłego użytkownika, oznacza to praktycznie każdy program. Z tego klucza rejestru korzystają dzisiaj niemal wyłącznie wirusy, więc jeśli coś tu znalazłeś, to polecam skanowanie.
Po co to w ogóle istnieje? Dobre pytanie, a żeby zrozumieć odpowiedź, trzeba nieco wiedzieć o systemie operacyjnym. Normalnie procesy są oddzielnymi tworami (tak jak wskazuje intuicja i zdrowy rozsądek), ale czasem zachodzi potrzeba komunikacji międzyprocesowej, lub rozszerzenie funkcjonalności bez zmiany kodu źródłowego. Do tego przydaje się załadowanie kodu z innego procesu, co uzyskuje się przez załadowanie dllki w pamięć procesu „ofiary”. Przykładem jest tutaj fraps, który musi przechwycić funkcję wyświetlającą obraz z każdej aplikacji (oczywiście nie korzysta z tego klucza, bo są teraz lepsze metody, to miejsce służy dziś praktycznie tylko wirusom, z wielu względów).
Process Explorer pozwala nam zobaczyć, jakie dllki są załadowane w pamięci konkretnego programu (różnymi metodami, nie tylko przez AppInit – a jest ich co najmniej kilkanaście). Ma to kilka zalet ponad zwykłym menadżerem zadań. Po pierwsze korzysta on z innych funkcji systemu, przez co można wykryć niektóre słabiej ukryte przez wirusy procesy i dllki, pozwala podejrzeć ścieżki wszystkich sprawdzanych plików, zużywane zasoby systemowe (wątki, uchwyty), a nawet sprawdzić podpisy cyfrowe. Z tych wszystkich rzeczy przede wszystkim interesujące jest sprawdzenie podpisów. Nie będę omawiał jak one powstają, to jest na wikipedii. Ważne jest tutaj tyle, że można sprawdzić autentyczność pliku przez sprawdzenie podpisu cyfrowego. Jeśli zauważyłeś jakiś uruchomiony program, możesz sprawdzić plik, żeby dowiedzieć się jaka firma go podpisała. Prawy przycisk myszy, verify i po chwili pojawi się albo napis „Verified” albo „Unable to Verify”. O ile pierwszy oznacza sukces, czyli poprawny plik, to drugi oznacza kilka rzeczy – albo nie udało się sprawdzić podpisu, albo jest on zły. Trochę kiepsko, że nie ma tego rozróżnienia, ale problem jest zgłoszony i być może będzie to poprawione w następnej wersji. Plik, który jest „Verified” z bardzo dużą pewnością pochodzi od wydawcy. Sfałszowanie podpisu cyfrowego jest bardzo trudne, i jest raczej niespotykane (po co fałszować podpis, certyfikaty, CA itd, skoro można po prostu podmieniać plik na dobry podczas sprawdzania, lub nawet zmienić wynik weryfikacji w samym programie sprawdzającym?). Nie należy więc tego używać do sprawdzania istnienia wirusów, lecz raczej przeciwko spyware, które często przedstawia się jako plik pochodzący od Microsoft, lub usługę systemową. Wszystkie pliki systemowe są podpisane, gorzej z programami od innych wydawców. Złym przykładem jest tutaj plik archives.dll, należący do Gadu-Gadu, z podstępnie wprowadzoną nazwą firmy n0ne i chyba bez podpisu cyfrowego (przynajmniej mi nigdy się nie udało go poprawnie zweryfikować). Oczywiście mam pewność, że to dobry plik, ale niesmak pozostaje. Czyżby jakiś zi0m to robił i zapomniał podpisać? Podejrzewam, że nie. Być może jakiś konflikt pomiędzy twórcą tej dllki, a obecną firmą, która obecnie jest spółką na giełdzie, spowodował, że plik nie został w pełni wykupiony (może jest tylko licencjonowany) i podpisany. To by się zgadzało, bo wersja archives.dll nie jest wysoka, a bugi ciągną się już od miesięcy nienaprawione. Wracając jednak do tematu - można też wybrać z menu kontekstowego opcję „search online”, co po prostu wrzuci do wyszukiwarki Windows Live nazwę zaznaczonego pliku. Bardzo przydatne, jeśli chcemy się dowiedzieć co zazwyczaj plik o takiej nazwie robi. Można tak robić i sprawdzać podpisy z obu programów (Autorun i Process Explorer).
 
Zajrzyjmy do następnej zakładki:

Internet Explorer posiada trzy miejsca, które automatycznie ładują jakieś dllki – rozszerzenia przeglądarki (widać tutaj czytnik PDF oraz zaznaczony odinstalowany program AVG, a właściwie jego fragment sprawdzający strony internetowe na wirusy), urlsearchhook - denerwująca sprawa, każdy nierozpoznany adres będzie obsłużony przez ten plik dll (często podmieniane przez spyware – przekierowuje na inne strony), extensions – rozszerzenia, podobnie jak przypadek pierwszy. Wirusy lubią korzystać z tych kluczy, żeby się reinstalować.
 
Kolejna zakładka:

Rozszerzenia explorer.exe, głównie menu kontekstowe. Ponieważ żeby większość z tych rzeczy została uruchomiona, trzeba kliknąć je w menu, nie ma tu zazwyczaj wirusów, ale za to można się pozbyć starych wpisów z odinstalowanych programów.
Następna zakładka:

Zakładka dotyczy sterowników, niemal to samo zobaczymy wybierając menadżer urządzeń i „pokaż ukryte sterowniki” z menu.

Tylko dla zaawansowanych, zmienianie tu czegokolwiek grozi problemami ze startem systemu. Na obrazki widać zaznaczone wirtualne urządzenie daemon-tools, który ukrywa się pod losową nazwą, w celu uniknięcia wykrycia przez zabezpieczenia antypirackie.
Skoro czytasz ten artykuł, to pewnie jednak będziesz chciał przejrzeć tą listę. Przykład:

Tajemniczy sterownik, którego pliku nie odnaleziono, a jednak są jakieś ślady w rejestrze (część rzeczy jest nieznaleziona, ale w rzeczywistości istnieje tylko podczas działania, a czasem wirusy zostawiają ślady po sterownikach). SiS7012, wybieram „search online” i okazuje się, że to sterownik do zintegrowanej karty dźwiękowej. Drugi przykład:

Sterownik WinPCap, programu używanego do przechwytywania pakietów przez WC3Banlist i podobne programy. Certyfikat wystawiony przez producenta CACE Technologies, Inc. poprawnie zweryfikowany. Nazwy NPF/npf.sys wiele nie mówi, ale widać, że nazwą produktu jest WinPCap (zaznaczam tutaj, że wirusy mogą umieścić w tym miejscu cokolwiek – dopiero po zweryfikowaniu certyfikatu można mieć pewność, że to informacja prawdziwa).
 
Zajrzyjmy na następną zakładkę:

Logon – te wszystkie rzeczy są uruchomione dla każdego logowania użytkownika. Widać tutaj całkiem standardowy zestaw, i oczywiście sporo śmieci, bo jest to najczęściej używane miejsce przez zwykłe programy. P17Helper to sterownik kart audigy – podaję to tutaj, bo chociaż jest podpisany przez Microsoft, należy do firmy Creative. Nazwa jest kompletnie nic niemówiąca, a pewnie sporo osób ma te karty. Może nawet czasem robi BSOD jak u mnie – rozwiązaniem jest instalowanie i odinstalowanie programów z płyty ze sterownikami w odpowiedniej kolejności. Creative – ręce opadają. Takie powinno być ich hasło reklamowe.
Co tu jest interesujące? Głównie to, że większość programów olewa usunięcie stąd swoich wpisów. Przez to, po ponownej instalacji, może się okazać, że nie zaznaczyłem automatycznych aktualizacji w Acrobat Reader, a one i tak sobie lecą.

Nie ma to jak ściągnięcie znienacka 16MB bardzo potrzebnej aktualizacji „language support”. Są tutaj dwie możliwości, albo jest to magiczny program wykrywający, czy uczysz się nowych języków, albo po prostu jest to kompletnie zbędne. Co gorsza wyskakuje to dość często, nawet raz na miesiąc.
 
Wracając do Autoruns:

Winlogon odbiera zdarzenia logowania i wylogowania, więc wszystkie programy umieszczone tutaj mogą być użyte przez wirusy do reinstalacji. Na tym przykładowym zrzucie ekranu nic nie ma, WRLogonNTF.dll jak się okazuje należy do odinstalowanego SpySweeper. WgaLogon jak się łatwo domyślić należy do komponentu antypirackiego Windows (Windows Genuine Advantage). Można się tu spodziewać programów wymagających powiadomień o wylogowaniu, ale raczej wszystko spoza głównych producentów powinno być podejrzane. Bardzo rzadko używane miejsce.
 
Teraz już wiadomo, że liczba miejsc z których mogą wystartować niechciane programy jest ogromna. Jakby tego było mało, jeśli pracujemy na koncie administratora, to dostępna jest jeszcze jedna możliwość, dla każdego programu, a mianowicie ładowanie dllek w locie, do dowolnego innego procesu. Wirusy uwielbiają tą opcję, bo pozwala skorzystać z „białej listy” w celu obejścia firewalli osobistych. Typowa sytuacja to ładowanie kodu do explorer.exe lub iexplorer.exe, bo te procesy niemal zawsze mają pełne zezwolenie od użytkownika na dostęp do sieci. Ponieważ wszczepiony kod może odczekać dowolną ilość czasu, a nawet oczekiwać na zdarzenie np. otwarcie strony, to trudno powiązać później żądanie dostępu do sieci z uruchomionym wcześniej „dropperem”, czyli programem instalującym wirusa/trojana/robaka w systemie. Process Explorerem można więc podejrzeć czy jakaś dodatkowa dllka nie została załadowana i nie „wisi” w tle. Można też podejrzeć używane klucze rejestru i pliki (to zazwyczaj wskazuje na to, co faktycznie robi program), a nawet je zamknąć. Pozwala to „uwolnić” pliki, których nie możemy skasować, bo są nadal używane.
 
Na koniec ciekawostka:

Typowym użyciem dllki ładowanej do wielu procesów jest tzw. „hook”. Programy korzystające z tej funkcji to komunikatory. Ggwhook.dll to coś, co znajdzie każdy użytkownik Gadu-Gadu, niemal w każdym procesie. Ta mała dllka służy do sprawdzania aktywności użytkownika, a konkretnie przekazuje informacje o czasie ostatniego wciśnięcia klawisza lub ruchu myszy. Jak widać nawet daemon.exe, kompletnie niepowiązany program, jest zmuszony ją załadować. Podobną dllkę znajdziecie dla każdego komunikatora. Jest to nieco śmieszne, bo nowsze systemy posiadają specjalną funkcję do sprawdzania aktywności użytkownika, która nie wymaga wykonania „hooka”, ale ze względów kompatybilności nikt jej nie używa. Nawet wyłączenie przełączania statusu w zależności od aktywności nie powoduje odinstalowania tej dllki. Na szczęście zazwyczaj są one małe i spełniają wyłącznie taką funkcję jak wcześniej opisałem. Jednak każdy komunikator posiada swoją, i zmusza wszystkie programy w systemie do jej przetwarzania, nieco obciążając procesor. Na szczęście zazwyczaj się tego nie obserwuje, bo sam program komunikatora jest dużo „cięższy”, a hook jest usuwany po wyłączeniu programu (nie trzeba odinstalowywać).
 
Wygląda na to, że nawet popularne programy korzystają z naszego komputera w sposób wymagający dokładniejszego przyjrzenia się. Do tego służą kolejne narzędzia ze strony Sysinternals: Process Monitor i TCPView. Drugi jest niezbyt ciekawy dla potrzeb tego artykułu (będzie więcej w następnym) – pokazuje połączenia TCP i UDP, oraz odpowiadające im procesy (programy). Zacznę jednak od niego i PunkBustera.
 
Od kiedy pojawiły się wirusy internetowe, czyli tzw. robaki, rozprzestrzeniające się nie tyle poprzez pliki, co przez dziury w oprogramowaniu sieciowym, pojawiła się także magiczna fraza „otwarty port”. Zazwyczaj źle rozumiana przez zwykłych użytkowników, którym często wydaje się, że samo w sobie jest to złem wszechświata, a skanowanie portów to hakerstwo najwyższej klasy. Na ten temat również więcej będzie w następnym artykule, w tym wystarczy wiedza, że TCPView pozwala podejrzeć „otwarte porty” (a nawet całe połączenia) bez żadnego skanowania, oczywiście wyłącznie na komputerze, gdzie jest uruchomiony. Przykładowy wynik działania:

Nie najgorzej, ale i nie najlepiej. Powstaje pytanie: co robią programy PnkBstrA.exe i PnkBstrB.exe, dlaczego trzymają „otwarty port” UDP, skoro odinstalowałem grę, która korzystała z PB dawno temu? Odpowiedź jest prosta, gra się odinstalowała, ale nie PunkBuster. Ponieważ jest wiele gier korzystających z PB, nie ma opcji odinstalowania, bo wszytkie korzystają z tych samych plików. Trochę dziwna logika, został mi sterownik i dwie usługi systemowe. Zakładam oczywiście, że wszystko jest uśpione, ale skoro wiadomo, że znaleziono błędy w serwerach PB, to może lepiej to też odinstalować. Tak naprawdę nie wiadomo, czy klient PB odpowiada na jakieś połączenia czy tylko je inicjuje. Nie mogę tego określić na podstawie TCPView, bo UDP jest protokołem bezstanowym – nie „otwiera portów” w klasycznym znaczeniu tego słowa (tak jak TCP), bo nie ma żadnego połączenia. Pakiet może zostać przysłany i odebrany w dowolnym momencie. Przy połączeniach TCP widać stan (kolumna State) „LISTENING”, nasłuchiwanie, czyli oczekiwanie na połączenie. To oznacza, że ten „otwarty port” nie będzie inicjował połączeń – jedynie je odbierał. Nie ma powodu, żeby PB utrzymywał „otwarty port”, gdy odinstalowałem korzystającą z niego grę. Właściwie to powód nie istnieje, dopóki gra nie jest uruchomiona. Jest specjalny program odinstalowujący, dostępny na stronie EvenBalance, więc go uruchamiam.

Dobry żart, żeby odinstalować muszę się zgodzić na śmieszną licencję kolejny raz. Ciekawe po co, skoro przy instalacji była bardzo podobna? Odpowiedź jest prosta – ponieważ PB używa sterownika, odinstalowanie wiąże się z ryzykiem, że system nie wstanie, więc trzeba się dodatkowo zabezpieczyć, na wszelki wypadek. Z drugiej strony ciekawe, czy w ogóle jest to legalne, żeby narzucać w tym momencie inną licencję (jeśli jest chociaż trochę inna niż przy instalacji).
Program w każdym razie zadziałał bez dostrzegalnych problemów. Zlikwidował obie usługi i sterownik. Teraz otwarte połączenia to niemal w 100% standard „gołego” Windowsa.

Jak widać, warto po odinstalowaniu wszystkich programów przeglądać, czy im się to powiodło. Typowe jest zostawanie sterowników po zabezpieczeniach antypirackich, z podobnych powodów jak tutaj – korzystania z jednego pliku przez wiele programów. Grałeś w Warrock? Został PB. Grałeś w Wiedźmina? Został ci sterownik Tages. Na szczęście tych popularnych zabezpieczeń jest nie więcej niż 10, więc jakoś się to wszystko kręci. Według mnie lepiej te rzeczy pousuwać i pozbawić się możliwości konfliktów z innymi zabezpieczeniami w przyszłości.
 
Co jeszcze można się dowiedzieć przez TCPView? Popularny komunikator Skype:

Otwarte jest jedno połączenie – status „ESTABLISHED”, czyli aktywne w obie strony. Logiczne, jest to serwer, do którego zawsze jest podłączony użytkownik komunikatora. Serwer jest używany co najmniej do weryfikowania tożsamości innych użytkowników Skype. Czyli wszystko gra. Dla celów artykułu, zostawiłem Skype na tym testowym komputerze (nieużywanym wcześniej praktycznie) na dłuższy czas. Wynik:

Liczba połączeń aktywnych: 444, z tego ponad 400 należy do Skype! Jest to powszechnie znany fakt - ten komunikator tworzy sieć P2P pomiędzy swoimi użytkownikami, żeby odciążyć główne serwery. Wszystko fajnie, tylko nie sądzę, żeby mój komputer był w stanie obsługiwać tyle połączeń naraz, jeśli będę chciał sobie zagrać. Od uruchomienia na „czystym” IP i komputerze minęło około 24h, kiedy Skype zdecydował się na stworzenie na nim SuperNode – czyli takiego większego punktu swojej sieci P2P. Jak widać, decyzja jest podejmowana głównie na podstawie czasu online maszyny, bo na pewno nie w kategoriach sprzętowych – mój testowy Pentium 4 1500MHz to chyba zbyt mało na takie zabawy. O ile na czystym komputerze wszystko trwało 24h, to użytkownik, który uruchamia Skype regularnie, ale mniej, również może stać się SuperNode. Wymagania, według strony producenta, to publiczny adres IP (brak NAT/routera). Istnieje również opcja w rejestrze wyłączająca tą funkcjonalność. Jeśli masz słabą maszynkę, a używasz Skype, to polecam wyłączyć. Nawet jeśli program jest wyłączony, to samo „bycie” SuperNode powoduje, że otrzymasz dużą ilość połączeń (oczywiście wszystkie zostaną odrzucone, ale można to traktować jako mini atak DoS) . Podobnie zachowuje się program TeamViewer (ale tam opcja wyłączenia P2P jest wewnątrz programu), oraz kilka innych.
 
Korzystając z Autoruns, Process Explorer i TCPView mamy kompletną informację o bieżącym stanie programu w systemie. Można nawet zauważyć, że są na zielono i czerwono oznaczane rzeczy, które właśnie ulegają zmianie (Np. połączenie się zamyka/otwiera, program zostaje zamknięty/uruchomiony). Jednak przy dużej ilości śledzonych programów ciężko jest to wszystko ogarnąć naraz. Złośliwe oprogramowanie, albo nawet zwykłe programy, często działają bardzo aktywnie tylko przez chwilę, otwierając w sekundę kilkaset plików, pozbawiając możliwości obserwowania tymi narzędziami. Oczywiście są one nadal niezastąpione przy szybkim przeglądaniu sytuacji w systemie lub naprawianiu własnego oprogramowania, ale do sprawdzania co robi podejrzany program, potrzeba jest więcej. Dlatego został stworzony kolejny wariant tych narzędzi (zresztą doskonale widać, że część funkcji już się dublowała w TCPView i Process Explorer). Poprzednie opierały się na podejściu, że szukamy aktywności połączeń w sieci (TCPView) i na poziomie procesów (Process Explorer). Process Monitor opiera się na założeniu, że ważną aktywnością w systemie jest dostęp do rejestru oraz plików. Program podpina się pod wszystkie funkcje Windows, które wykonują jakiekolwiek działania wpływające na zawartość dysku oraz rejestru i zatrzymują lub startują programy/wątki. Każda klasa zdarzeń może być obserwowana oddzielnie, a także można stosować filtry, ograniczające zakres obserwacji do programu lub grupy programów.Opisywanie nie powie nawet połowy tego, co można po prostu zobaczyć. Tak wygląda wynik działania tego programu:

Gadu-Gadu, a dokładniej proces gg.exe bardzo lubi korzystać z rejestru. Dokładnie nie wiem, co tu się dzieje, ale jest to powiązane z kontrolką IE, która jest używana do wyświetlenia reklam flash. Być może to sama kontrolka flash lubi tak często tam zaglądać. W każdym razie, każdy może sobie to sprawdzić i porównać. Oczywiście trzeba rozumieć, że takie kilka odczytów z rejestru, nawet jeśli są powtarzane tak często jak tutaj (dziesiątki czy setki zdarzeń na sekundę) to nie jest nic wielkiego dla dzisiejszych komputerów. Co innego dla staroci, no i oczywiście odbija się to na żywotności dysku twardego. W związku z ostatnim artykułem na temat sprzętu dostałem kilka zapytań – ogólnie o to, czy dysk jest uszkodzony, jeśli problem objawił się uszkodzeniem pliku system.dat. Ten plik zawiera część rejestru, która znajduje się pod kluczem HKEY_LOCAL_SYSTEM, czyli jest obok pagefile.sys najczęściej używanym plikiem systemu. To twierdzenie również można sprawdzić Process Monitorem – tylko najpierw trzeba odblokować filtr na pagefile.sys, bo jest domyślnie włączony. Rejestru dotyczą oczywiście wszystkie zdarzenia zaczynające się od „Reg”.
 
Zobaczmy kolejny przykład działania:

Jak widać ggwhook.dll jest używany i ładowany przez wszystkie procesy, jakie się w ogóle pojawiają w systemie, tak jak wcześniej opisywałem. Trochę pamięci się marnuje i jakieś śladowe zużycie procesora. Szkoda tylko, że na darmo, bo nie mam włączonego zmieniania statusu od nieaktywności. Przy okazji aktywny jest program WMPNSCFG.EXE, o którym mogę powiedzieć tylko tyle, że pewnie nikt go nie używa i z własnej woli nie instaluje. Czy naprawdę przesyłanie zdjęć z PS3 do PC jest takie ważne, żeby trzymać usługę, która jest uruchomiona cały czas? Teraz możesz sobie sam odpowiedzieć na to pytanie.
 
Do tej pory nie wykazałem jakiejś wielkiej użyteczności tego programu, ale zapewniam, że można się dowiedzieć naprawdę niesamowitych rzeczy. Takich jak tutaj:

Darmowy program TeamViewer do zdalnej administracji. Non-stop zagląda do kluczy, w których znajduje się nazwa zarejestrowanego użytkownika. Być może jest to część systemu sprawdzającego zgodność z licencją (darmowy tylko dla niekomercyjnych zastosowań), ale zdarza się przecież, że są tam dane osobowe. Dobry powód, żeby nic tam nie wpisywać.
 
Jest wiele kluczy rejestru, które są często przeglądane, przez różne programy. Kolejny przykład:

Nvsvc32.exe, fragment oprogramowania sterowników NVidii, bardzo lubi klucz SilentModeControl (zaznaczony na obrazku). Na tym konkretnym komputerze sprawdza go co kilka sekund, bez powodzenia – GF2MX nie posiada kontroli wiatraczka, więc klucza nie ma.
 
Skype po raz kolejny, dziwne pliki tymczasowe:

Twórcy Skype wywodzą się z niezbyt ciekawego kręgu biznesowego – dawniej zajmowali się znanym ze spyware i naginania prawa systemem P2P Kazaa. Czyżby coś namącili? Co to jest? Nazwę pliku „etilqs” trzeba odczytać od tyłu i wyjdzie Satan666. Ups, jednak wychodzi SQLite – popularna baza danych public domain. Najwyraźniej Skype przechowuje jakieś dane w plikach, które z niej korzystają. Co tam jest, nie wiem, ale jest dość aktywny – co chwilę coś się tam zapisuje i odczytuje. Jeszcze jeden powód, żeby nie trzymać Skype uruchomionego podczas gier na słabszych komputerach.
 
Dobijmy leżącego:

Co chwila w Skype uaktywnia się proces SkypePM.exe. Czy to jest naprawdę potrzebne? Po co dwa procesy? Po co grzebie po rejestrze? Na sieci można znaleźć informacje, że w rzeczywistości ten proces jest zupełnie zbędny! Jest to menedżer dodatków (plugin manager). Co jeśli ktoś nie ma dodatków? Tracisz wtedy 20MB RAM na darmo. Wprawdzie zużycie pamięci całego programu jest rozsądne, ale naprawdę dziwne, że wyodrębnili to jako dodatkowy program i zostawili uruchomione na stałe.
 
Skoro tyle już wiemy na temat Process Monitora, to czemu nie użyć go do Warcaft III, a nuż się dowiemy czegoś nowego. I jak się okazuje, rzeczywiście. Zaczyna się niewinnie:

Podczas uruchamiania gry można zaobserwować aktywność war3.exe (zarówno RoC jak i FT korzystają z tego samego silnika gry). Każdy może sobie to przejrzeć, ja ograniczę się do zinterpretowania ciekawych według mnie fragmentów. Powyżej widać, że przed załadowaniem gry każda mapa jest odczytana (a właściwie jej niewielki fragment). Oznacza to, że im więcej mamy map, tym dłużej będzie startować gra. Prawdopodobnie są to sumy kontrolne i nagłówek mapy (to ten odczyt 124 bajty) i miniatury map (4096 bajtów).
 
Jest jedna zagadka. War3.exe wyraźnie próbuje podczas uruchamiania, nawet kilka razy, odnaleźć jakiś tajemniczy klucz rejestru.

Jak widać ma to jakiś związek z Intel Corporation PLSuite IJLib. Nic wam to nie mówi? Mi też, ale na google da się znaleźć. IJLib to skrót od Intel JPEG Library, czyli jakiejś biblioteki obsługującej pliki jpeg. Z ciekawości postanowiłem utworzyć ten klucz, aż doprowadził mnie do jego pełnej nazwy: USECPU. Znowu na google udało mi się znaleźć, że ten klucz odpowiada za optymalizację tej biblioteki pod konkretny procesor. Wprowadziłem go więc jak na obrazku (wartość = 6):

Super, teraz war3.exe korzysta z optymalizacji dla Pentium 4! Ile to dało? Oczywiście nic zauważalnego. Te JPEGi są najprawdopodobniej reklamami albo kompletnie bezużytecznymi obrazkami lub ikonami. Nie ma znaczenia ich prędkość odczytu z plików MPQ, bo i tak dzieje się to tylko na starcie gry.
 
Tym pesymistycznym akcentem kończę ten artykuł. Kolejny będzie poświęcony wyłącznie problemom z połączeniami. Omówię dokładnie zacinanie się listy gier (a właściwie już prawie omówiłem, bo opiera się to na obserwacji połączeń w TCPView i prostej interpretacji), IP bany oraz problemy z wejściem na bramki. Jak się wam nudzi, to zawsze możecie się pobawić w sprawdzanie, co robią wasze ulubione programy. Zapewniam, że niemal każdy was zaskoczy. Nie omawiałem więcej, żeby nie przedłużać, ale jeśli kogoś interesuje wytłumaczenie jakiejś konkretnej znalezionej sytuacji to chętnie odpowiem w komentarzach.

Zamieścił: pyton, dnia: 11:24:09, Wednesday 06. August 2008

Komentarze:

1: eVo
[15:48:18, Wednesday 06. August 2008] , Zgłoś do moderacji
elo
atrykul konkret, przeczytalem caly! xD
teraz szperam w Autoruns ;D
pzdr

[05:02:39, Friday 08. August 2008] , Zgłoś do moderacji
heh - nie pomsyalelm, ze na rep.pl bede zagladal, zeby takie rzeczy czytac ;)

gj pyton - czekamy na kolejne arty ;)

Więcej?

Chcesz znaleźć informacje na konkretny temat? Przejrzyj hasła, których najczęściej dotyczą dodane ostatnio nowości! WC3L, TURNIEJ, WCG, NETWARS, LCW, WORLD CYBER GAMES, TERROR, DOTA, GRUBBY, MYM, PALADYN, WYWIAD, REPPACK, WARCRAFT, BLIZZARD, MOON, PORADNIK, POL-TEAM, BIOT, POLSKA, ESL, KONKURS, LIGA, WORLD ELITE, FUZJA, NGL-ONE, ENC, NGL, TOD, TDEL, SPQR, SLH, MOUZ, PGS, TOUR, GFO, WILQ, BRONZE, KODE5, WILDA, PATCH, TEAM FIGHTING, LADDER, REPREZENTACJA, SILVER, HEADSHOT, EXTREME MASTERS, HEYAH, FLY100%, VOODOO, LYN, KUJA, BIOHAZARD-TEAM, BVG, WICKED, ESWC, ALMOST, TH000, ACIS, KWAKI, CYKLOP, SHOW, KLIMO, REPLAYPACK, INCUP, CLAN BASE, HOORAI, SASE, ELIMINACJE, FINAłY, FNATIC, POLTEAM, SHOWMATCH, WCG 2006, IEST, SRS, FINAł, CYBERSPORT, WE.EU, PLD, SKY, PRAE, REMIND, JAGR, CASIN, LAN, REPLAYS.PL, CHALLENGE, ANIMATOR, 2007, BATTLENET, CARMAC, HAPPY, NATIONS, STARCRAFT, PEDAL, KONKURSIWO, W3ARENA

Copyright © Wszelkie prawa zastrzeżone,
kopiowanie tylko za zgodą właściciela.
2003/2007 by: CyklOP, Muzami, Julas [ Mapa Strony ]
Replayów w bazie: 19538 Kont użytkowników: 11428

Pomysł, oskryptowanie, administracja: CyklOP [jak kupić zagraniczne akcje] [Jak wypełnić W-8BEN] [Jak tanio wymienić walutę] [deutschtests]
Design: Muzami, art w topie strony nadesłał Z4buZa
Skrypt obsługujacy replaye: Juliusz 'Julas' Gonera [ Replay Parser ]
Wykonano w czasie 0.40822792053223 sekund