[Archiwum biuletynów ^][< Wolumin 2, Numer 4][Wolumin 3, Numer 1 >]

System wewnętrzny biuletyn woluminu 2, numer 5

www.sysinternals.com
Copyright (c) 2000 Mark Russinovich


30 listopada 2000 r. — w tym problemie:

  1. REDAKCJI

  2. CO NOWEGO W SYSINTERNALS

    • PsLoggedOn v1.2
    • PsShutdown v1.0
    • PsTools v1.1
    • BgInfo v1.1
    • Tokenmon v1.0
    • Filemon v4.32
    • Regmon v4.32
    • Wewnątrz systemu Windows 2000, 3rd Ed.
    • Magazyn Windows 2000 Listopad i Zima
    • Sysinternals w firmie Microsoft
    • Licencjonowanie programu Sysinternals
  3. INFORMACJE WEWNĘTRZNE

    • NFI
    • Ukryte klucze rejestru Win9x
  4. CO SIĘ DZIEJE

    • Nowe wywołania systemowe sygnalistów

SPONSOR: WINTERNALS SOFTWARE

Biuletyn Sysinternals jest sponsorowany przez Winternals Software w sieci Web w www.winternals.com. Winternals Software jest wiodącym deweloperem i dostawcą zaawansowanych narzędzi systemów dla systemu Windows NT/2K. Produkty Winternals Software obejmują FAT32 dla systemu Windows NT 4.0, NTFSDOS Professional Edition (sterownik NTFS do odczytu/zapisu dla SYSTEMU DOS) i Remote Recover.

Polecenie netstat, które jest dostarczane ze wszystkimi wersjami systemów Windows 9x i Windows NT/2000, pokazuje, jakie porty TCP/IP są otwarte w systemie, jednak nie pokazuje, jaki proces ma otwarty port. TCPView Pro, najnowsze narzędzie do monitorowania Winternals, nie tylko zawiera narzędzie wiersza polecenia netstat równoważne, Tcpvstat, który pokazuje, który proces ma każdy otwarty port, ale zawiera graficzny interfejs użytkownika, który pokazuje te same informacje oraz śledzenie aktywności TCP/IP w czasie rzeczywistym. Śledzenie w czasie rzeczywistym ujawnia aplikację uzyskującą dostęp do sieci, lokalne i zdalne adresy IP dostępu z opcjonalnym rozpoznawaniem nazw DNS, typem dostępu, powodzeniem dostępu i ilością przesyłanych danych. TCPView Pro to tylko $69. Pobierz 14-dniową, w pełni funkcjonalną wersję próbną tcpView Pro dzisiaj na www.winternals.com/products/monitoringtools/tcpviewpro.shtml.

Witam wszystkich,

Witamy w biuletynie Sysinternals. Biuletyn ma obecnie 28 000 subskrybentów.

Jedną z zalet przejścia z systemu Windows NT do systemu Windows 2000 jest znacznie większa niezawodność. Pisałem o przyczynach ulepszeń w kilku artykułach i są one przede wszystkim wynikiem narzędzia o nazwie Weryfikator sterowników. Weryfikator, który uruchamiasz, można skonfigurować, wpisując "weryfikator" w oknie dialogowym Uruchamianie menu Start, aby uważnie obserwować wykonywanie określonych sterowników urządzeń, szukając naruszenia dowolnego z kilku reguł programowania sterowników. Weryfikator idzie o krok dalej niż pasywne monitorowanie, jednak — zwiększa również potencjał; warunki błędu przez, na przykład przydzielanie bloków pamięci dla sterownika, które są oddzielone nieprawidłowymi regionami, i zerowanie określonych pól w strukturach danych, które są przekazywane do sterownika. Jeśli naprawdę chcesz uzyskać trudne, możesz mieć weryfikatora symulować niskie warunki pamięci dla sterownika.

Firma Microsoft korzysta z Weryfikatora za pośrednictwem programu podpisywania sterowników, który wymaga, aby każdy sterownik podpisany cyfrowo przez firmę Microsoft przeszedł ścisłe testy weryfikatora sterowników. Po zainstalowaniu sterownika kreator sprzętu sprawdza, czy sterownik jest podpisany. Jeśli tak nie jest, zostanie wyświetlony ostrzeżenie lub nie można zainstalować sterownika, w zależności od ustawień wprowadzonych w oknie dialogowym Opcje podpisywania sterowników, które jest dostępne na stronie Sprzęt apletu System w Panel sterowania.

Fakt, że domyślne zasady podpisywania sterowników ostrzega użytkowników końcowych o niepodpisanych sterownikach, wystarczy, aby większość dostawców sprzętu trafiła do problemu, aby ich sterowniki były niezawodne i podpisane. Jednak sterowniki urządzeń mogą wkraść się do systemu niezakryte przez zasady podpisywania sterowników. Tylko sterowniki instalowane przy użyciu plików INF (plików instalacyjnych sterowników, które kończą się rozszerzeniem inf) są sprawdzane pod kątem podpisów. Aplikacje instalacyjne mogą ręcznie instalować sterowniki przy użyciu interfejsów API instalacji bezpośrednio lub ręcznie konfigurując ustawienia rejestru sterownika. Aplikacje Sysinternals są doskonałymi przykładami tego: Filemon, Regmon i inne narzędzia Sysinternals, które mają składniki sterowników instalować sterowniki ręcznie, co jest powodem, dla którego nie otrzymasz ostrzeżenia, że nie są podpisane przez firmę Microsoft.

Sterowniki, które nie są często instalowane z plikami INF, obejmują skanery wirusów, oprogramowanie szyfrowania i oprogramowanie do nagrywania dysków CD-ROM. Nie wyklucza to jednak, aby sterowniki związane ze sprzętem przechodziły przez. Sterownik Sysinternals Ctrl2cap dla systemu Windows 2000 (www.sysinternals.com/ctrl2cap.htm jest przykładem sterownika powiązanego ze sprzętem, który instaluje się w sposób pomijający kontrole podpisywania sterowników. Ta luka prowadzi do obecności sterowników w systemie, które nie zostały zweryfikowane, co może naruszyć stabilność systemu (sprawdzam wszystkie sterowniki Sysinternals w najwyższych ustawieniach). Firma Microsoft powinna wymusić na wszystkich sterownikach, a nie tylko tych, które instalują pliki INF, aby przejść przez sprawdzanie podpisywania.

Dlaczego jestem na tym rant? Moje oprogramowanie do nagrywania DYSKÓW CD-ROM, które jest najpopularniejszym oprogramowaniem tego typu na rynku, ma sterownik, który będzie odtwarzanie ulegać awarii systemu Windows 2000 SP1. Jeśli skonfiguruję weryfikatora sterowników, aby go sprawdzić, system nawet nie zakończy rozruchu, zanim weryfikator wykryje pierwsze naruszenie sterownika i ulegnie awarii systemu. Sterownik zainstalowany bez pliku INF, więc nie został ostrzeżony, że nie został podpisany. Gwarantujem, że jeśli zasady firmy Microsoft były bardziej rygorystyczne, że ten dostawca pomyśli dwa razy przed wysyłką niepodpisanego (i usterki) sterownika.

Przekaż biuletyn do znajomych, którzy mogą cię zainteresować.

Dziękujemy.

-Mark

CO NOWEGO W SYSINTERNALS

PSLOGGEDON V1.2

Oprócz oczywistej zmiany nazwy z LoggedOn na PsLoggedOn, to narzędzie wiersza polecenia, które ma możliwość wyświetlania, kto jest zalogowany lokalnie i za pośrednictwem udziałów zasobów w systemie lokalnym lub zdalnym, ma kilka nowych funkcji. Pierwszy to przełącznik wiersza polecenia "-l", który wynikał z opinii użytkowników. Wiele osób używa polecenia PsLoggedOn, aby sprawdzić, czy jakiekolwiek konto jest zalogowane lokalnie na swoich serwerach. Mogą być na przykład zalogowani użytkownicy za pośrednictwem udziałów plików, ale nie ma to znaczenia podczas podejmowania decyzji o tym, kiedy można zaktualizować konto lub serwer może być zdalnie administrowany.

Druga nowa funkcja PsLoggedOn pokazuje nie tylko, kto jest zalogowany, ale także czas, w którym miało miejsce logowanie. PsLoggedOn uzyskuje czasy logowania do logowania z udziałów zasobów bezpłatnie, gdy używa interfejsu API Win32, NetSessionEnum, aby wyliczyć logowania do udziału zasobów (polecenie wiersza polecenia Net używa również netSessionEnum do wyliczania sesji). Jednak nie ma interfejsu API Win32, który informuje, kto jest zalogowany do systemu lokalnie, znacznie mniej w czasie, w którym się zalogował.

Aby określić, kto jest zalogowany do systemu lokalnie, psLoggedOn wylicza identyfikatory zabezpieczeń (IDENTYFIKATORy SID) znajdujące się w kluczu HKEY_USERS rejestru komputera. Gdy ktoś zaloguje się na komputerze lokalnie, w konsoli lub za pośrednictwem usługi, jego profil zostanie załadowany do HKEY_USERS klucza. Aplikacje mogą uzyskiwać dostęp do ustawień rejestru profilu za pomocą HKEY_CURRENT_USER klucza, ponieważ system traktuje ten klucz jako link symboliczny do określonego profilu w obszarze HKEY_USERS. W związku z tym psLoggedOn może wiedzieć, kto jest zalogowany lokalnie, tłumacząc identyfikatory SID znalezione w kluczu komputera HKEY_USERS do odpowiedniej nazwy użytkownika. Narzędzie PsLoggedOn używa RegConnectKey do łączenia się z rejestrem komputera zdalnego podczas kierowania go do listy użytkowników zalogowanych do systemu zdalnego.

Ustalenie, kiedy użytkownik zalogował się, działa przy użyciu podobnej sztuczki. Gdy proces WinLogon ładuje profil użytkownika po HKEY_USERS zalogowaniu, WinLogon tworzy nietrwały (nie zapisany w profilu na dysku) podklucz w profilu o nazwie, odpowiednio, nietrwałe środowisko. Rejestr przechowuje ostatnio zmodyfikowane znaczniki czasu dla kluczy rejestru i dlatego, że system nie modyfikuje podklucza środowiska lotnego po ich utworzeniu, PsLoggedOn może określić, kiedy użytkownik zalogował się, uzyskując sygnaturę czasową podklucza nietrwałego środowiska.

Pobierz plik PsLoggedOn w wersji 1.2 z pełnym źródłem pod adresem
www.sysinternals.com/psloggedon.htm.

PSSHUTDOWN V1.0

Jeśli kiedykolwiek konieczne było zamknięcie lub ponowne uruchomienie lokalnego lub zdalnego systemu Windows NT/2000, należy pobrać program PsShutdown. PsShutdown to klon narzędzia Zestawu zasobów Shutdown Windows NT/2000. Przyjmuje on te same argumenty wiersza polecenia, które umożliwiają określenie opóźnienia przed zamknięciem, czy ponowne uruchomienie, opcjonalny komunikat wyświetlany dla każdego użytkownika aktualnie zalogowanego w systemie oraz nazwę komputera do zamknięcia lub ponownego uruchomienia.

Pobierz plik PsShutdown v1.0 pod adresem www.sysinternals.com/psshutdn.htm.

PSTOOLS V1.1

Prawdopodobnie zauważyliśmy rosnącą liczbę narzędzi w witrynie Sysinternals, które zaczynają się od prefiksu "Ps". Pierwszy to PsList, narzędzie wiersza polecenia, które wyświetla informacje o aktywnych procesach w lokalnym lub zdalnym systemie Windows NT/2000. Dałem PsList jego nazwę, ponieważ standardowe system UNIX narzędzie do obsługi procesów wiersza polecenia nosi nazwę "ps". Następnym narzędziem do pobrania prefiksu był PsKill, narzędzie wiersza polecenia, które umożliwia zakończenie procesów uruchomionych w lokalnych lub zdalnych systemach Windows NT/2000. Dałem PsKill prefiks "Ps", ponieważ zrobił doskonały towarzysz PsList.

W miarę upływu czasu opracowałem inne narzędzia, które współużytkowały te same cechy definiowania co PsList i PsKill: są oparte na wierszu polecenia i działają na lokalnym lub zdalnym systemie Windows NT/2000. Na przykład ElogList pozwala zrzucić zawartość dzienników zdarzeń systemu, a GetSid wyświetlił identyfikator SID komputera lub określonego konta. Ostatnio postanowiłem powiązać wszystkie te narzędzia razem, dając im wszystkie prefiks "Ps" i co czyni je do pobrania jako pojedynczy pakiet o nazwie PsTools.

PsTools, który obejmuje PsList, PsKill, a także zmienioną nazwę PsLogList i PsGetSid, składa się z łącznie siedmiu narzędzi. Jeśli zostanie wyświetlone narzędzie Sysinternals z prefiksem "Ps", automatycznie wiadomo, że jest to narzędzie wiersza polecenia, które działa lokalnie, a także zdalnie.

Pobierz narzędzie PsTools w wersji 1.1 na www.sysinternals.com/pstools.htm.

BGINFO V1.1

W wyniku ogromnych opinii użytkowników Bryce zaktualizował BgInfo, narzędzie, które ustawia tapetę pulpitu w celu wyświetlania dostosowywalnych informacji o konfiguracji systemu, w wyniku opinii użytkowników, które otrzymał. Domyślnie bgInfo odlicza 10 sekund przed zastosowaniem ustawień określonych w oknie dialogowym, ale nowa opcja wiersza polecenia , /timerumożliwia zmianę lub całkowite wyeliminowanie odliczania. Ułatwia to dołączanie pliku BgInfo do skryptu logowania lub skrótu w folderze startowym profilu.

Wersja 1.1 zawiera inne nowe funkcje, takie jak możliwość wyświetlania zdefiniowanego dowolnego tekstu i bardziej wstępnie zdefiniowanych kategorii informacji. Mapa bitowa pulpitu BgInfo w wersji 1.1 jest również ogólnie mniejsza, co minimalizuje zużycie pamięci pulpitu przez BgInfo.

Pobierz plik BgInfo w wersji 1.1 pod adresem www.sysinternals.com/bginfo.htm.

TOKENMON V1.0

Tokenmon to najnowszy dodatek do zróżnicowanego zestawu narzędzi do monitorowania, które można pobrać z programu Sysinternals. Tokenmon, który udostępnia ten sam interfejs użytkownika co jego kuzynów, takich jak Regmon i Filemon, monitoruje znaczące działania związane z zabezpieczeniami w systemie Windows NT/2000. Co to jest "znaczące" działanie związane z zabezpieczeniami? W centrum zabezpieczeń systemu Windows NT/2000 jest obiekt tokenu, struktura danych zawierająca identyfikator SID konta, identyfikatory SID grupy i uprawnienia. Za każdym razem, gdy proces próbuje uzyskać dostęp do zabezpieczonego obiektu, monitor odwołań do zabezpieczeń używa identyfikatorów SID w tokenie w ramach weryfikacji dostępu. Jeśli proces próbuje wykonać ograniczoną operację, taką jak ponowne uruchomienie systemu, system sprawdza odpowiednie uprawnienia w tokenie procesu.

Jedną z zaawansowanych (i patentowanych) funkcji modelu zabezpieczeń systemu Windows NT/2000 jest personifikacja. Personifikacja umożliwia wątkowi tymczasowe zastąpienie tożsamości opartej na procesie i wdrożenie alternatywnej tożsamości za pomocą tokenu personifikacji. Aplikacje serwerowe korzystają z personifikacji podczas uzyskiwania dostępu do zasobów w imieniu klienta, gdy przyjmują tożsamość klienta przez czas trwania dostępu.

Tokenmon instaluje haki wywołań systemowych w taki sam sposób, jak regmon dla interfejsów API rejestru, w celu monitorowania tworzenia i usuwania tokenów, włączania i wyłączania uprawnień oraz personifikacji. Tokenmon używa również punktów zaczepienia tworzenia procesów dostarczonych przez jądro NT/2000 do monitorowania tworzenia i usuwania procesów oraz innych interfejsów API w celu określenia, kiedy użytkownik loguje się i kiedy się wylogował.

Pełny kod źródłowy tokenmon jest publikowany i warto omówić niektóre interesujące techniki, które demonstruje kod. Tokenmon wykrywa zdarzenie logowania przez przypinanie wywołania systemu NtCreateToken, które jest używane przez brokerów logowania, takich jak WinLogon, aby utworzyć początkowy token dla pierwszego procesu nowej sesji logowania. Procesy utworzone przez pierwszy proces dziedziczą kopię pierwszego tokenu. Aby wykryć wylogowanie, tokenmon rejestruje się w celu wylogowania powiadomienia za pośrednictwem trybu jądra SeRegisterLogonSessionTerminatedRoutine, interfejs API, który istnieje z korzyścią dla sterowników systemu plików, nazywanych przekierowaniami sieci, które buforują dane sesji logowania i chcą wyczyścić, gdy użytkownik się wyloguje. Przekierowania sieciowe implementują po stronie klienta połączenia klienta/serwera współużytkowania plików.

Innym interesującym szczegółem implementacji tokenmon jest sposób, w jaki tokenmon łączy interfejsy API, które monitoruje. Niektóre interfejsy API, których haki Tokenmon nie są eksportowane do użytku przez sterowniki urządzeń, ale są eksportowane w bibliotece NTDLL.DLL w trybie użytkownika do użycia przez aplikacje korzystające z ich odpowiedników Win32. Wszystkie interfejsy API rejestru, które haki regmon są eksportowane w trybie jądra, dzięki czemu sterownik urządzenia Regmon może uzyskać numery wywołań systemowych i odpowiednio podłączyć tabelę wywołań systemowych. W przypadku interfejsów API, które nie są eksportowane do użytku przez sterowniki, interfejs GUI tokenmonu musi uzyskać numery wywołań przy użyciu eksportów w pliku NTDLL.DLL, a następnie przekazać numery do sterownika, aby sterownik mógł podłączyć tabelę wywołań systemowych. W związku z tym tokenmon pokazuje, jak podłączyć wywołania systemowe, które nie są eksportowane w trybie jądra.

Pobierz plik Tokenmon w wersji 1.0 z pełnym źródłem w www.sysinternals.com/tokenmon.htm.

FILEMON V4.32

Ta najnowsza aktualizacja Filemon wprowadza bardziej intuicyjne i kompletne filtrowanie, wyświetlanie pełnych nazw ścieżek UNC dla dostępu do plików sieciowych systemu Windows 9x/Me i wyświetlanie nazw plików metadanych NTFS.

Poprzednie wersje pliku Filemon wymagały wprowadzenia filtrów z obowiązkowymi symbolami wieloznacznymi. Jeśli na przykład chcesz monitorować dostęp do katalogu tymczasowego na dysku C:, musisz wprowadzić filtr podobny do następującego: "c:\temp\*". W przypadku nowej składni filtrowania symbole wieloznaczne są opcjonalne, więc mimo że przykładowy filtr zadziała, "c:\temp" osiągnie ten sam efekt. Ponadto filemon stosuje teraz filtry wprowadzane dla wszystkich pól wyświetlanych, w tym nazwę procesu, typ żądania, ścieżkę i "inne". Ta elastyczność umożliwia obserwowanie określonych typów żądań lub żądań z określonymi danymi w innej kolumnie, co nie było wcześniej możliwe.

Użytkownicy systemu Filemon w systemach Windows 9x/Me będą teraz widzieć nazwy ścieżek wyświetlanych Filemon z pełną składnią UNC podczas uzyskiwania dostępu do zasobów zdalnych. Plikmon wcześniej nie wyświetlał nazwy serwera ani udziału dla takich dostępu, co powoduje niekompletne nazwy ścieżek.

Na koniec, jeśli używasz filemon w systemie Windows NT/2000, bez wątpienia widziałeś tekst "DASD" w kolumnie path dla wielu dostępu ("DASD" pochodzi z "Direct Access Storage Device", termin używany przez firmę Microsoft do opisywania dostępu do woluminu, który pomija struktury systemu plików). W przypadku większości działań na woluminach NTFS dasD jest teraz rzeczą przeszłości. Zamiast tego zobaczysz nazwy plików metadanych NTFS, które są odczytywane i zapisywane. Na przykład aktualizacja rekordu MFT spowodowała wcześniej wiersz danych wyjściowych DASD, ale teraz zobaczysz go jako dostęp do "$Mft", wewnętrznej nazwy pliku metadanych MFT.

Dlaczego plik Filemon nie pokazywał wcześniej nazw plików metadanych i jak teraz uzyskuje te nazwy? Obiekty plików reprezentujące pliki metadanych NTFS nie przechowują nazwy pliku, więc Filemon nie może wyodrębnić nazwy z obiektu pliku. Alternatywna metoda filemon do uzyskania nazwy pliku, wykonywania zapytań dotyczących sterownika systemu plików, nie działa w przypadku plików metadanych NTFS. System PLIKÓW NTFS reaguje na nazwy plików metadanych, system NTFS na NT 4 losowo powoduje awarie, a system NTFS w systemie Win2k od czasu do czasu zawiesza się podczas odpowiadania na takie zapytania.

Plikmon musi zatem uciekać się do sztuczki, aby uzyskać nazwy plików metadanych. Gdy widzi żądanie skierowane do obiektu pliku na woluminie NTFS bez nazwy, wysyła zapytanie NTFS do indeksu pliku. Jest to ten sam indeks, który zwraca funkcja Win32 GetFileInformationByHandle, a w przypadku plików na woluminach NTFS indeks jest indeksem MFT pliku. Pierwsze 16 wpisów w MFT są zarezerwowane dla określonych plików metadanych, więc biorąc pod uwagę indeks w tym zakresie, Filemon po prostu wyszukuje nazwę pliku metadanych we własnej tabeli.

Niestety, nadal zobaczysz DASD dla metadanych katalogu i tabeli alokacji plików (FAT) dostępu do woluminów FAT, ponieważ FAT nie przechowuje nazw plików metadanych katalogu ani FAT. Będziesz zaskoczony tym, jak często uzyskuje się dostęp do pliku dziennika NTFS ($LogFile). Nawiasem mówiąc, ntfs na Whistler przechowuje nazwy plików metadanych, więc sztuczka jest niepotrzebna na Whistler.

Ostateczne rozszerzenie Filemon umożliwia filemon wyświetlanie sygnatur czasowych dnia z milisekundową rozdzielczością. Ta obsługa wymagała brzydkich hacks w sterowniku Windows 9x/Me Filemon ze względu na błędy w funkcji chronometrażu w jądrze Systemu Windows 9x/Me. Aby uzyskać więcej informacji, zobacz kod źródłowy.

Pobierz plik Filemon w wersji 4.32 z kodem źródłowym w www.sysinternals.com/filemon.htm.

REGMON V4.32

Zmiany regmona nie są tak ważne jak te z Filemon, ale Regmon obsługuje teraz tę samą intuicyjną składnię filtrowania co Filemon, a na przykład Filemon, stosuje filtry do wszystkich pól. Może również pokazywać rozdzielczość milisekund na znacznikach czasu.

Ci z was, którzy zaczęli grać z Whistler (następca Windows 2000) Beta 1 może zauważyć, że poprzednie wersje Regmon crash Whistler po uruchomieniu. Dzieje się tak dlatego, że firma Microsoft umieściła tabelę wywołań systemowych, którą regmon modyfikuje w celu wstawienia swoich punktów zaczepienia w pamięci chronionej zapisem. Regmon v4.32 działa w tej sprawie przy użyciu techniki, dla której nie podano kodu źródłowego na żądanie firmy Microsoft, ponieważ technika może przerwać się w końcowej wersji whistler, a firma Microsoft bada sposoby obsługi podłączania wywołań systemowych. System Windows NT nie został zaprojektowany do obsługi hakowania połączeń systemowych, co jest czymś, co zapoczątkowaliśmy z pierwszym wydaniem Regmon w połowie 1996 roku.

Oto nieudokumentowana porada Filemon/Regmon. Często otrzymuję wiadomości e-mail, które pytają, jak uruchomić Regmon lub Filemon z konta innego niż administracyjne w systemie Windows NT/2000 Istnieje wiele przypadków, gdy określona aplikacja działa prawidłowo po uruchomieniu z konta administratora, ale nie z konta nieuprzywilejowanego użytkownika, gdzie Regmon i Filemon byłyby przydatne do określenia, dlaczego aplikacja kończy się niepowodzeniem (zazwyczaj jest to problem związany z ustawieniami zabezpieczeń w pliku lub kluczu rejestru). Jednak uruchomienie programu Regmon i Filemon z konta nieuprzywilejowanego zakończy się niepowodzeniem, ponieważ zarówno pliki Filemon, jak i regmon instalują sterowniki urządzeń, co wymaga uprawnień administratora.

Jednak istnieje sztuczka, która pozwoli Ci obejść ten problem: jeśli zalogujesz się jako administrator i uruchomisz plikmon lub regmon, będziesz mógł następnie uruchomić je z nieuprzywilejowanych kont. Dzieje się tak dlatego, że pliki Filemon i Regmon instalują sterownik podczas pierwszego wykonywania, a w kolejnych wykonaniach uzyskują dostęp do już załadowanego sterownika. Ponieważ nie implementuję żadnych zabezpieczeń w sterowniku, nieuprzywilejowany użytkownik może uruchamiać narzędzia po załadowaniu sterownika. Problem z zabezpieczeniami? Tak, ale Filemon i Regmon mają być narzędziami do rozwiązywania problemów, więc ja, a ludzie, którzy pytają, jak uruchamiać narzędzia z nieuprzywilejowanych kont, postrzegają to jako funkcję.

Pobierz plik Regmon v4.32 z pełnym kodem źródłowym w www.sysinternals.com/regmon.htm.

DEBUGVIEW V4.02

Jedną z aplikacji, dla których otrzymałem najwięcej opinii użytkowników, jest nieco zaskakująco, DebugView. Ta nowa wersja ma kilka znaczących ulepszeń, które dotyczą wielu żądań funkcji i funkcji, które otrzymałem, i sprawiają, że funkcja DebugView jest bardziej zaawansowana niż kiedykolwiek.

Najwidoczniej funkcja DebugView obsługuje teraz maksymalnie pięć różnych filtrów wyróżniania, z których każdy ma własne dostosowywalne kolory. Dzięki temu można jednocześnie użyć innych słów kluczowych w danych wyjściowych debugowania i łatwo je odróżnić. Ponadto funkcja DebugView implementuje tę samą nową składnię filtrowania co Filemon i Regmon, dzięki czemu symbole wieloznaczne są opcjonalne do dopasowywania podciągów.

Otrzymano skargę dotyczącą poprzednich wersji funkcji DebugView, która polega na tym, że nawet jeśli chcesz przechwycić dane wyjściowe debugowania Win32, nadal potrzebne są uprawnienia administracyjne do uruchomienia widoku DebugView, ponieważ funkcja DebugView nie zostanie uruchomiona, jeśli nie może zainstalować sterownika urządzenia. Ta nowa wersja jest uruchamiana nawet z kont, które nie mają specjalnych uprawnień. Jeśli nie może zainstalować ani uzyskać dostępu do sterownika, po prostu wyłączy jego elementy menu związane z przechwytywaniem trybu jądra.

Dwie funkcje, które ułatwiają automatyczne przechwytywanie danych wyjściowych w widoku DebugView, gdy logujesz się, jest to opcja minimalizowania na pasku zadań i obsługa przełączników wiersza polecenia. Za pomocą przełączników wiersza polecenia możesz uruchomić widok DebugView w zasobniku systemu i dane wyjściowe dziennika przechwycone do pliku, a po uruchomieniu debugview można użyć opcji menu, aby przełączyć jego zachowanie przycisku minimalizujące normalne i zminimalizować do zasobnika systemu.

W przypadku użytkowników, którzy uruchamiają funkcję DebugView w sesjach zdalnych w usługach terminalowych systemu Windows 2000, funkcja DebugView przechwytuje teraz dane wyjściowe Win32 generowane przez aplikacje uruchomione w sesji zdalnej i opcjonalnie z poziomu sesji konsoli. Jest to przydatne do zdalnego debugowania serwerów COM i usług Win32, ponieważ tego typu programy są uruchamiane w sesji konsoli.

Ponadto funkcja DebugView działa teraz w wersji Whistler Beta 1 z obsługą przechwytywania danych wyjściowych z kilku nowych wariantów Whistler w funkcji DbgPrint w trybie jądra.

Pobierz widok DebugView w wersji 4.02 pod adresem www.sysinternals.com/dbgview.htm.

WEWNĄTRZ SYSTEMU WINDOWS 2000, 3RD EDITION

Oficjalna książka na temat wewnętrznych systemu Windows 2000 jest teraz dostępna! Ta edycja, współtworzona przez Davida Solomona (www.solsem.com) i Marka Russinovicha, jest ponad 40% większa niż poprzednia, a nowe pokrycie sieci, plug-and-play, zarządzanie energią, usługi, Rejestr, WMI, rozruch i zamykanie oraz magazyn. Zawiera również dysk CD z kilkoma zaawansowanymi narzędziami, niedostępnymi nigdzie indziej, na potrzeby badania wewnętrznych systemu Windows 2000.

Jednym z narzędzi, które napisałem specjalnie dla książki jest LiveKd, program, który pozwoli Ci uruchomić oba debugery jądra firmy Microsoft, i386kd i WinDbg, w systemie na żywo tak, jakby patrzyłeś na zrzut awaryjny. Wiele eksperymentów przedstawionych w książce pracuje nad systemem na żywo podczas uruchamiania przy użyciu liveKd. Funkcja LiveKd działa przez zainstalowanie sterownika filtru systemu plików, który przedstawia pamięć fizyczną komputera do debugera firmy Microsoft tak, jakby był to plik zrzutu awaryjnego. LiveKd tworzy plik pseudorzucania o długości 0, a gdy debuger odczytuje z pliku, LiveKd zwraca dane z pamięci fizycznej. Zapoznaj się ze stroną errata i aktualizacji książki dla poprawki LiveKd, która poprawia niezgodność między LiveKd v1.0 i kilkoma skanerami wirusów dostępu.

Zobacz spis treści i kolejność książki za pośrednictwem www.sysinternals.com/insidew2k.htm.

LISTOPAD I ZIMOWY MAGAZYN WINDOWS 2000

Chcesz dowiedzieć się, co dokładnie zmieniło się między ntfs v4 i NTFS v5? Jeśli tak, zapoznaj się z moją dwuczęściową serią w listopadowych i zimowych wydaniach magazynu Windows 2000. Część 1 zawiera opis punktów ponownej analizy, skrzyżowań katalogów, punktów instalacji woluminów, obsługi limitów przydziału i skonsolidowanych ustawień zabezpieczeń. Część 2 kończy się z bliskim spojrzeniem na szyfrowanie, strumienie, rozproszone śledzenie linków i dziennik zmian. Oba artykuły zawierają bardziej szczegółowe informacje niż inne, przedstawiając zmiany na dysku i wewnętrzne zachowanie tych nowych funkcji.

Jedną z rzeczy, o których nie mówię w artykułach, jest to, jak ntfs dla systemu Windows NT 4 nie jest naprawdę wersja

Znajdź linki do wszystkich naszych publikacji w www.sysinternals.com/publ.htm.

SYSINTERNALS AT WWW.MICROSOFT.COM

Sysinternals pojawiło się w kilku nowych artykułach bazy wiedzy Microsoft Knowledge Base (KB) od ostatniego biuletynu, a ja również prześledzę niektóre starsze artykuły KB, które odnoszą się do sysinternals.

  • Q260513 PRB: występuje błąd podczas instalowania produktów Visual Studio
    http://support.microsoft.com/support/kb/articles/Q260/5/13.ASP
    W tym artykule zaleca się, aby czytelnicy używali programów Filemon i Regmon do rozwiązywania problemów z instalacją programu Microsoft Visual Studio.

  • Q202258 XADM: System nie może odnaleźć określonej ścieżki — identyfikator nr: 0cx002003
    http://support.microsoft.com/support/kb/articles/Q202/2/58.ASP
    Firma Microsoft faktycznie przeprowadzi użytkowników przy użyciu narzędzia Filemon do rozwiązywania problemów z uaktualnianiem dodatku Service Pack do programu Exchange 5.0, wraz z przykładowym wierszem danych wyjściowych Filemon i zaleceniami dotyczącymi konfigurowania filtrów.

  • Q269383 ŻĄDANIE ściągnięcia: komunikat "Błąd podczas uzyskiwania dostępu do rejestru systemu" podczas wyświetlania odwołań VB/VBA
    http://support.microsoft.com/support/kb/articles/Q269/3/83.ASP
    Regmon pobiera odwołanie z tego artykułu, który omawia korzystanie z niego w celu określenia, dlaczego okno dialogowe Odwołania w raportach środowiska IDE języka Visual Basic, gdy nie może uzyskać dostępu do klucza rejestru w wyniku usterki w raportach Crystal Firmy Spark, które stosuje nieprawidłowe uprawnienia do kilku kluczy.

  • Q269251 USTERKA: Automatyzowanie Instalatora Windows może się zawieszać podczas wyliczania produktów
    http://support.microsoft.com/support/kb/articles/q269/2/51.asp
    Funkcja Regmon jest ponownie wyróżniona tutaj, gdzie jest używana do ujawnienia usterki automatyzacji Instalatora Windows.

  • Q276525 komputer może przestać odpowiadać podczas monitorowania otwartych dojść
    http://support.microsoft.com/support/kb/articles/Q276/5/25.asp
    NtHandle jest odpowiedzialny za ujawnienie usterki w systemie Windows NT 4 SP6a, gdzie jądro zawiesza się w pewnych warunkach podczas korzystania z NtHandle. Firma Microsoft współpracowała ze mną, aby rozwiązać ten problem i wydali poprawkę. Jeśli system NT 4 zawiesza się podczas korzystania z NtHandle, należy uzyskać link do tego artykułu.

  • Q160660 Ntregmon.exe powoduje 0x0000001E STOP z nowym dodatkiem Service Pack
    http://support.microsoft.com/support/kb/articles/Q160/6/60.asp
    Ten ostatni jest oldie, ale goodie. Pierwsza wersja regmon użyła zakodowanych numerów wywołań systemowych, aby zastosować poprawki do tabeli usług systemowych w celu przypinania interfejsów API rejestru. Ponieważ numery połączeń systemowych czasami zmieniają się między dodatkiem Service Pack, ta technika jest dość krucha, a ja nie kodowałem defensywnie w oczekiwaniu na to (przeciwko radom Andrew Schulman, który bał Się Regmon złamać). Oczywiście, SP3 wprowadził kilka nowych wywołań systemowych, a Regmon ulegnie awarii systemu, gdy podłączył nieprawidłowe wywołania systemowe. Chociaż to z pewnością zirytowałem kilka osób, zrobiłem z niego własny artykuł KB!

LICENCJONOWANIE SYSINTERNALS

Mimo że oprogramowanie pobierane z oprogramowania Sysinternals jest bezpłatne, co oznacza, że można go używać bez płacenia opłaty, nie wolno go rozpowszechniać ani uzyskiwać produktów dystrybuowanych z kodu źródłowego Sysinternals. Jeśli na przykład pracujesz w firmie, w której wielu użytkowników znajdzie przydatne określone narzędzia Sysinternals, nie możesz opublikować narzędzi w wewnętrznym udziale lub witrynie sieci Web. Zamiast tego umieść linki w witrynie do strony głównej każdego narzędzia w witrynie Sysinternals. Pomaga to również upewnić się, że współpracownicy zawsze pobierają najnowsze wersje.

Jeśli chcesz ponownie dystrybuować narzędzia Sysinternals wewnętrznie, z produktem komercyjnym lub na dysku CD oprogramowania shareware, albo chcesz utworzyć produkt komercyjny lub program redystrybucyjny w kodzie źródłowym Sysinternals, wyślij wiadomość e-mail wyjaśniającą szczegóły żądanego użycia do licensing@....

INFORMACJE WEWNĘTRZNE

NFI

Kilka biuletynów z powrotem ujawniłem istnienie narzędzia DiskEdit, że Microsoft przypadkowo wysłane na NT 4 SP4 CD. DiskEdit to bardzo zaawansowany, choć dziwaczny podgląd struktury systemu plików, którego można użyć do zbadania systemu plików NTFS i FAT (choć jest to obsługa NTFS, która jest interesująca) struktur danych na dysku. Jeśli przegapiłeś DYSK CD NT 4 SP 4 i interesuje Cię eksplorowanie struktur NTFS na dysku, nie jesteś całkowicie w ciemności, choć. Firma Microsoft wydała bezpłatne narzędzie o nazwie NFI (NTFS Information), które rozumie i może zrzucić wewnętrzne struktury woluminów NTFS. Chociaż jego dane wyjściowe nie są prawie tak szczegółowe jak diskEdit, jest interesujące i ujawniane.

NFI można pobrać w ramach narzędzi pomocy technicznej producenta OEM na stronie http://support.microsoft.com/support/kb/articles/q253/0/66.asp. Uruchamianie NFI z nazwą pliku zrzuty rekordu NTFS MFT dla tego pliku. W poniższym przykładzie pokazano, jak NFI dumping rekordU MFT dla $Quota pliku metadanych, plik, który istnieje tylko w przypadku włączenia zarządzania limitami przydziału na woluminie:

C:\nfi c:\$extend\$quota
File 24
\$Extend\$Quota
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$INDEX_ROOT $O (resident)
$INDEX_ROOT $Q (resident)

Dane wyjściowe pokazują, że plik zajmuje 24. wpis w MFT (jego indeks pliku to 24) i że zawiera cztery atrybuty, w tym standardowe informacje, nazwę pliku i dwa katalogi główne indeksu (i indeks jest zasadniczo poskładaną listą wpisów, takich jak katalog). Opisuję, jak NTFS używa $Quota indeksów w mojej najnowszej serii Magazyn Windows 2000 na NTFS v5.

Aby zrzucić wszystkie pliki na woluminie, określ literę dysku w wierszu polecenia NFI bez nazwy pliku, np. nfi c:. Zobaczysz listę każdego wpisu MFT, w tym wszystkie pliki metadanych.

NFI ma inne talenty, takie jak możliwość tłumaczenia numeru sektora na plik, w którym się znajduje. Chcesz wiedzieć, w jakim sektorze plików znajduje się 2345 na dysku C: ? Użyj polecenia nfi c: 2345. Należy pamiętać, że kończy się to niepowodzeniem na woluminach software-RAID, takich jak zestawy woluminów i zestawy stripe. NFI działa zarówno na NT 4, jak i Windows 2000.

UKRYTE KLUCZE REJESTRU WIN9X

Dwa problemy temu powiedziałem, że obejmę "ukryte klucze rejestru Win9x" w następującym biuletynie, a kilka z was przypomniało mi, że zapomniałem. Więc w tym miesiącu powiem o ukrytych kluczach rejestru w systemie Windows 9x.

Kilka lat temu odkryłem sposób tworzenia ukrytych kluczy rejestru w systemie Windows NT. Ukryte, to znaczy, że chociaż można zobaczyć klucze używane przez aplikację, która tworzy je za pomocą Regmon, nie można napisać programu Win32, aby przyjrzeć się wartościom klucza, ani spojrzeć na klucze za pomocą edytorów rejestru Regedit lub Regedt32. Ukryte klucze są przydatne do przechowywania danych, których użytkownicy końcowi nie chcą modyfikować, na przykład daty przekroczenia limitu czasu produktu w wersji próbnej.

Sztuczka tworzenia ukrytego klucza rejestru polegała na tym, że natywny interfejs API NT, który jest interfejsem wywołania systemu, na którym jest skompilowany interfejs API Win32, wymaga określenia kluczy rejestru jako zliczonych ciągów Unicode. Zliczany ciąg Unicode jest taki, którego długość jest wskazywana przez pole długości, a nie obecność terminatora o wartości null. Za pomocą natywnego interfejsu API można więc utworzyć klucze rejestru zawierające znak null, na przykład "test\0test". Ponieważ interfejs API klucza rejestru interfejsu API win32 jest oparty na ciągach zakończonych wartościami null, nie ma możliwości otwarcia klucza rejestru zawierającego terminator o wartości null przy użyciu interfejsu API Win32. Jeśli próbowano przekazać poprzednią przykładową nazwę klucza lub RegOpenKeyRegCreateKey będzie traktowana jako "test" , z ciągiem obciętym z znakiem null. Ponieważ wszystkie istniejące edytory rejestru, w tym te powiązane z systemami Windows NT i Windows 2000, używają interfejsu API Win32, aplikacji, która używa natywnego interfejsu API do tworzenia nazw osadzonych znaków null skutecznie tworzy ukryte klucze.

Ta metoda działa w systemie Windows NT, ale co z systemem Windows 9x? Nie sądziłem, że istnieje sposób na utworzenie ukrytych kluczy rejestru w systemie Windows 9x, dopóki ktoś e-mail mnie z plikiem dziennika Regmon, który pokazuje program Internet Explorer (IE) dostępu do kluczy, które nie są wyświetlane w Regedit. Aby zobaczyć to samodzielnie, uruchom polecenie Regmon i ustaw następujący filtr dołączania: "policydata". Następnie uruchom program IE (działa to dla wszystkich wersji programu IE 4 i IE 5) i odwiedź witrynę sieci Web. Jeśli w regmonie nie widzisz żadnych danych wyjściowych, przejdź do okna dialogowego konfiguracji opcji programu IE i upewnij się, że doradca zawartości jest włączony.

Jeśli doradca zawartości jest włączony lub kiedykolwiek został włączony w systemie, zobaczysz dostęp do HKLM\PolicyDatklucza i jego podkluczy. Nie znajdziesz jednak klucza PolicyData w obszarze HKEY_LOCAL_MACHINE podczas wyszukiwania w regedit. Pośmiń minutę i sprawdź, czy możesz dowiedzieć się, co się dzieje.

Odpowiedź polega na tym, że program IE dynamicznie ładuje gałąź rejestru przy użyciu interfejsu RegLoadKey API Win32, odczytując potrzebne wartości, a następnie zwalniając gałąź za pomocą RegUnloadKeypolecenia . Gałąź ma nazwę C:\Winows\System\Ratings.pol — plik jest ukryty i tylko do odczytu, ale można go ujawnić, wpisując .attrib –r –h c:\windows\system\ratings.pol

Ślady widoczne w regmonie pokazują informacje, których szuka doradca zawartości w gałęzi. Jeśli chcesz samodzielnie eksplorować jego zawartość, pobierz narzędzie Regload z www.sysinternals.com/regload.zip i uruchom je przy użyciu następującej składni: regload test c:\windows\system\ratings.pol. Następnie otwórz plik Regedit i przeglądaj HKLM\testplik . Wartości, które znajdziesz, odpowiadają ustawieniom określonym w doradcy zawartości i są powiązane z plikiem konfiguracji o nazwie w Users\FileName0 wartości w gałęzi. Wartość zazwyczaj wskazuje C:\Windows\System\RSACi.ratwartość , plik klasyfikacji zdefiniowany przez skojarzenie klasyfikacji zawartości internetowej. Nawiasem mówiąc, możesz zobaczyć wartość z nieco humorystyczną nazwą "PleaseMom" w ustawieniach rejestru doradcy zawartości, na przykład w obszarze HKLM\Test\Users\Default. Ta wartość pochodzi z pola wyboru "Nadzorca może wpisać hasło, aby umożliwić użytkownikom wyświetlanie zawartości z ograniczeniami" na stronie Ogólne okna dialogowego Ustawień doradcy zawartości.

Powodem, dla którego firma Microsoft zaciemniałaby istnienie tych wartości rejestru, powinna być oczywista. Jednak istnieje dość poważna słabość w ich projekcie. Należy pamiętać, że po włączeniu doradcy zawartości należy określić hasło, które chroni okno dialogowe ustawień doradcy zawartości. To hasło jest przechowywane w pliku HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Ratings\Key. Usuń te wartości i, presto, możesz uzyskać dostęp do ustawień klasyfikatora zawartości bez wprowadzania hasła! Teraz, jeśli deweloperzy programu IE poszli do problemu, aby zaciemnić ustawienia doradcy zawartości, dlaczego opuszczają te tylne drzwi w otwartym miejscu? Typowy projekt zabezpieczeń firmy Microsoft, jak sądzę. Aby zwolnić klucz załadowany za pomocą polecenia Regload, wpisz polecenie regload test.

CO SIĘ DZIEJE

NOWE WYWOŁANIA SYSTEMOWE SYGNALISTÓW

Whistler to przyrostowa ewolucja systemu operacyjnego Windows 2000 z naciskiem na zwiększoną niezawodność i łatwą migrację użytkowników z systemów operacyjnych Windows 9x. Zawiera jednak pewne zmiany jądra. Najbardziej widoczne są kilka nowych wywołań systemowych i wyeksportowanych (dostępnych do użycia przez sterowniki urządzeń) funkcji jądra. Następnym razem dam ci podgląd tych nowych interfejsów API jądra.


Dziękujemy za przeczytanie biuletynu Sysinternals.

Opublikowano czwartek, 30 listopada 2000 19:05 przez ottoh

[Archiwum biuletynów ^][< Wolumin 2, Numer 4][Wolumin 3, Numer 1 >]