[Archiwum biuletynów ^][< Wolumin 2, Numer 3][Wolumin 2, Liczba 5 >]

System wewnętrzny biuletyn woluminu 2, numer 4

www.sysinternals.com
Copyright © 2000 Mark Russinovich


30 sierpnia 2000 r. — w tym problemie:

  1. REDAKCJI

  2. CO NOWEGO W SYSINTERNALS

    • ListDlls v2.23
    • HandleEx w wersji 2.26
    • ElogList v2.02
    • LogOn v1.1
    • Bluescreen v2.21
    • PageDefrag v2.01
    • LoadOrder v1.1
    • ClockRes v1.0
    • BgInfo v1.0
    • Wewnątrz systemu Windows 2000, 3rd Ed.
    • Sysinternals w firmie Microsoft
  3. INFORMACJE WEWNĘTRZNE

    • Możliwości uprawnień debugowania
    • Nowe interfejsy API w systemie Win2K SP1?
    • WinDev 2000 West
  4. CO SIĘ DZIEJE

    • Tokenmon

WSPÓŁ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.

Winternals Software's ERD Commander 2000 jest najnowszym wydaniem w wielokrotnie nagradzanej linii produktu ERD Commander. Nowe funkcje komandora ERD Commander 2000, w tym wbudowane edytory rejestru i plików, sprawiają, że jest to najbardziej zaawansowane narzędzie odzyskiwania systemu Windows NT i Windows 2000 w życiu. Można zainstalować ERD Commander 2000 na dyskietce, cd-ROM, a nawet dysku twardym systemu w celu szybkiego dostępu, a jego kreator instalacji sprawia, że dodawanie interfejsu SCSI innych firm i innych sterowników pamięci masowej jest proste. ERD Commander 2000 jest $349, lub tylko $49 dla istniejących właścicieli ERD Commander Professional. Dowiedz się więcej i pobierz wersję próbną na www.winternals.com/products/erdcommander2000.shtml.

WSPÓŁSPONSOR: MAGAZYN WINDOWS 2000

Magazyn Windows 2000 zawiera praktyczne rozwiązania dla osób, które pracują z systemem Windows NT/2000 codziennie. Zamów bezpłatny przykładowy problem teraz i bez ryzyka. Jeśli zdecydujesz się kontynuować subskrypcję, otrzymasz 13 kolejnych problemów przy 40% od ceny kiosku. Subskrybuj dzisiaj o: http://www.win2000mag.com/sub.cfm?code=fs00inhs13

Witam wszystkich,

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

Spędzam dużo czasu w Regmon, Filemon i DebugView, narzędzia, które Bryce i ja opracowałem w Sysinternals. Regmon jest monitorem dostępu do rejestru (www.sysinternals.com/regmon.htm), Filemon jest monitorem dostępu do plików (www.sysinternals.com/filemon.htm), a DebugView jest monitorem danych wyjściowych debugowania (www.sysinternals.com/dbgview.htm). Czasami natknę się na aplikację lub sterownik urządzenia zainstalowany w jednym z moich kilku systemów, które generują ciągłą aktywność widoczną w jednym z tych narzędzi. Nie mówię o niezbędnych działaniach, jednak działania wykonywane przez oprogramowanie są zwykle powtarzającym się charakterem, a badanie śladów wyjściowych ujawnia, że oprogramowanie wykorzystuje technikę sondowania, w której użycie innego mniej uciążliwego mechanizmu jest możliwe.

Na przykład różne komercyjne skanery wirusów wysyłają zapytanie do pliku sygnatury wirusa kilka razy na sekundę, aby sprawdzić, czy został zaktualizowany. Jeden z moich systemów ma sterownik drukarki od głównego producenta drukarki, który stale wyprowadza instrukcje debugowania, które poprzez włączenie słowa "sondowanie", reklamują, że sondują. W jednym z moich ulubionych przykładów narzędzie reklamowane jako zwiększające wydajność systemu od głównego dostawcy narzędzi wykonuje zapytania o kilka kluczy rejestru dostawcy wiele razy na sekundę. Przykładem innego typu kodowania niechlujnego jest karta sieciowa od głównego dostawcy sieci, który zawiera składnik oprogramowania w trybie użytkownika zawierający osadzone punkty przerwania debugowania, które stale podróżuje podczas wykonywania oprogramowania. Jeśli aplikacja musi wykryć zmianę pliku, może zażądać powiadomienia o zmianie katalogu. Podobnie jeśli konieczne jest wykrycie zmian klucza rejestru, może zażądać powiadomienia o zmianie klucza, a oprogramowanie komercyjne nigdy nie powinno zawierać danych wyjściowych debugowania ani punktów przerwania debugowania, które są domyślnie włączone.

Być może najbardziej rażącym przykładem jest jednak usługa Microsoft Windows Media Program Service, która jest dostarczana z systemem Windows 2000 Server (): odczytuje pierwsze 2 KB \Winnt\System32\Windows Media\Server\ASDB\mdsas.mdb szybkości około 60 razy na sekundę w systemie, w którym nie ma żadnej aktywności (\Winnt\System32\Windows Media\Server\Npsm.exew tym brak obsługi multimediów). Nie ma dla tego usprawiedliwienia, zwłaszcza że może to negatywnie wpłynąć na ogólną wydajność serwera.

Jestem pewien, że jeśli używasz regmon, Filemon lub DebugView przez dowolny czas, prawdopodobnie napotkasz podobne przykłady. Gdy go widzisz, nie tylko ustaw filtr i zapomnij o nim, wyślij wiadomość e-mail do dostawcy narzekając na ich niechlujne programowanie.

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

Dziękujemy.

-Mark

CO NOWEGO W SYSINTERNALS

LISTDLLS V2.23

ListDLLs to narzędzie wiersza polecenia, które pokazuje szczegółowe informacje o bibliotekach DLL, które zostały załadowane. Na przykład listDLLs wyświetla podstawowy adres pamięci, rozmiar, wersję i pełną ścieżkę każdej biblioteki DLL. Ta nowa wersja przedstawia wiersz polecenia, który został użyty do uruchomienia procesu, w tym wszystkich parametrów przekazanych w wierszu polecenia. Może to pomóc w rozróżnieniu wielu procesów i rozwiązywaniu problemów związanych z określonymi opcjami wiersza polecenia.

Pobierz listyDLLs v2.23 pod adresem www.sysinternals.com/listdlls.htm.

HANDLEEX V2.26

HandleEx to aplikacja, która przedstawia informacje o tym, które procedury obsługi i bibliotek DLL zostały otwarte lub załadowane. Jego wyświetlacz składa się z dwóch okien podrzędnych. Na górze zawsze jest wyświetlana lista aktualnie aktywnych procesów, w tym nazwy własnych kont, natomiast informacje ujawnione w dolnym oknie zależą od trybu, w którym znajduje się handleEx: jeśli funkcja HandleEx jest w trybie obsługi, zobaczysz dojścia, że proces wybrany w górnym oknie został otwarty; Jeśli jest w trybie DLL, zobaczysz biblioteki DLL i pliki mapowane pamięci, które proces załadował.

Najnowsza wersja programu HandleEx zawiera kilka nowych funkcji. Najpierw, podobnie jak ListDLLs, teraz pokazuje wiersz polecenia, który został użyty do uruchomienia procesu podczas wyświetlania właściwości procesu.

Jedną z niedociągnięć programu HandleEx przed tą wersją było to, że chociaż wyświetlała nazwę konta, w którym były wykonywane procesy systemowe i procesy sesji logowania, nie można było obejść modelu zabezpieczeń systemu Windows NT/2000, aby pokazać właściciela procesów uruchomionych z innych kont użytkowników (program Pview z zestawu Windows NT/2000 Resource Kit również ma to ograniczenie). Było to boleśnie widoczne w środowiskach NT 4 Terminal Server i Windows 2000 Terminal Services, gdzie HandleEx wskazał, że procesy uruchomione z innych sesji użytkowników miały nieznanych właścicieli. Narzędzie HandleEx w wersji 2.26 implementuje sztuczkę umożliwiającą określenie konta będącego właścicielem wszystkich procesów bez wyjątku, dzięki czemu jest to idealne narzędzie dla środowisk usług terminalowych.

Ostatnia nowa funkcja handleEx w wersji 2.26 umożliwia wymuszenie zamknięcia otwartego dojścia. Po otrzymaniu wielu żądań dotyczących tej funkcji dodano tę funkcję. Zalecamy, aby używać go z ekstremalną ostrożnością, jednak ponieważ aplikacje zazwyczaj nie są napisane, aby oczekiwać, że dojścia mogą nagle stać się nieprawidłowe, a aplikacje z uchwytami wymuszonych zamkniętych mogą zachowywać się erratycznie lub ulegać awarii w wyniku.

Pobierz narzędzie HandleEx w wersji 2.26 pod adresem www.sysinternals.com/handleex.htm.

ELOGLIST V2.02

Zestaw Resource Kit systemu Windows 2000 zawiera narzędzie o nazwie ELogDmp, które umożliwia zrzut rekordów z dziennika zdarzeń na komputerze lokalnym lub zdalnym. ELogList bardziej zaawansowana niż ElogDmp, ponieważ umożliwia również określenie opcjonalnej nazwy konta i hasła, dzięki czemu można uzyskać dostęp do dzienników zdarzeń komputera z innego konta niż to, z którego korzystasz narzędzie. Ponadto, podczas gdy narzędzie ElogDmp wyświetla wpisy dziennika zdarzeń w postaci pierwotnej, co utrudnia interpretację danych wyjściowych, ta aktualizacja ElogList formatuje wpisy dziennika zdarzeń w celu wyświetlania tekstu w Podgląd zdarzeń systemu Windows NT/2000. Nawet w przypadku wyświetlania dzienników zdarzeń z systemów zdalnych lista ElogList używa poprawnych plików komunikatów w systemie zdalnym na potrzeby danych ciągów formatowania.

Pobierz aplikację ElogList v2.02 pod adresem www.sysinternals.com/eloglist.htm.

LOGON V1.1

LoggedOn to aplet wiersza polecenia informuje, kto jest zalogowany na określonym komputerze, lokalnie lub za pośrednictwem udziałów zasobów. Aktualizacja w wersji 1.1 umożliwia wyszukiwanie w sieci sesji logowania skojarzonych z określonym użytkownikiem. Ta funkcja jest przydatna w sytuacjach, w których chcesz wykonać aktualizacje konta użytkownika i należy sprawdzić, czy użytkownik nie jest obecnie zalogowany.

Pobierz plik LoggedOn w wersji 1.1 z pełnym źródłem w www.sysinternals.com/misc.htm.

BLUESCREEN V2.21

Większość z was jest teraz bez wątpienia zaznajomiona ze słynnym wygaszaczem ekranu Sysinternals Blue Screen, który dokładnie przedstawia awarię systemu Windows NT lub Windows 2000 i ponowne uruchomienie. Od czasu początkowej wersji stale odbierałem żądania od użytkowników systemu Windows 9x, którzy chcą uruchomić wygaszacz ekranu na swoich komputerach, więc w końcu przesunąłem go do systemu Windows 9x. W systemie Windows 9x symuluje awarię i ponowny rozruch systemu Windows 2000.

Jedynym wymaganiem do korzystania z wygaszacza ekranu Sysintenals Blue Screen w systemie Windows 9x jest uzyskanie kopii pliku windows 2000 Ntoskrnl.exe do umieszczenia w \Windows\System katalogu — Blue Screen wymaga pliku dla ekranu powitalnego systemu Windows 2000.

Teraz możesz naprawdę mylić nie podejrzewających użytkowników systemu Windows 9x, którzy wracają do komputera tylko w celu wykrycia, że utknęło w cyklu awarii i ponownego rozruchu systemu Windows 2000!

Pobierz program Bluescreen Screen Saver v2.21 w www.sysinternals.com/bluescreen.htm.

PAGEDEFRAG V2.01

PageDefrag to narzędzie defragmentujące uruchamiane w czasie rozruchu w celu defragmentowania plików stronicowania systemu i gałęzi rejestru. PageDefrag był pierwszym narzędziem, które może defragmentować hive rejestru, ale od czasu jego wydania ta funkcja została dodana do kilku komercyjnych defraggers. Jednak pageDefrag jest nadal bezpłatny, a wersja 2.01 działa w systemie Windows 2000, a także Windows NT 4.

Jeśli interesuje Cię interfejs defragmentacji udostępniany przez system Windows NT 4 i Windows 2000, możesz dowiedzieć się o nim i pobrać kod źródłowy do interaktywnego defragmentatora plików na www.sysinternals.com/defrag.htm. Systeminternals udokumentował interfejs defragmentacji lat, zanim firma Microsoft uwzględniła go w zestawie SDK platformy, a kilka komercyjnych defragmentatorów korzystało z naszej dokumentacji i przykładowego kodu.

Pobierz plik PageDefrag v2.01 pod adresem www.sysinternals.com/pagedfrg.htm. Zapoznaj się z dokumentacją interfejsu defragmentu w www.sysinternals.com/defrag.htm.

LOADORDER V1.1

Czy kiedykolwiek zastanawiałeś się, w jakiej kolejności sterowniki urządzeń i usługi ładują i inicjują? Teraz możesz łatwo się dowiedzieć. LoadOrder to narzędzie, które przetwarza informacje w obszarze HKLM\System\CurrentControlSet\Services w celu utworzenia obrazu kolejności ładowania sterownika i usługi.

Pobierz moduł LoadOrder w wersji 1.1 pod adresem www.sysinternals.com/misc.htm.

CLOCKRES V1.0

W moich artykułach na harmonogramie mówiłem o tym, że kwanty wątku Windows NT/2000 (długość kolei wątku do uruchomienia na procesorze) jest oparta na rozdzielczości zegara systemowego. Rozdzielczość zegara wpływa również na opóźnienie zdarzeń opartych na czasomierzu systemu Windows. Artykuł w www.sysinternals.com/timer.htm omawia nawet sposób, w jaki aplikacje mogą manipulować rozdzielczością zegara. W przypadku większości smPs rozdzielczość to 15 ms, a na jednoprocesorach jego 10 ms wartości ustawione przez standardowe SMP i jednoprocesorowe listy HALs (warstwa abstrakcji sprzętu).

Podczas gdy większość systemów używa typowych wartości wymienionych powyżej, jak można określić rzeczywistą rozdzielczość zegara na komputerach? Odpowiedź znajduje się w interfejsie API Win32 GetSystemTimeAdjustment, który informuje, czy system stosuje okresową korektę zegara godzinowego. Dzieje się tak, że ten interfejs API zwraca również interwał zegara. Aplet ClockRes używa interfejsu API, aby określić rozdzielczość zegara systemu.

Pobierz plik ClockRes plus źródło w www.sysinternals.com/misc.htm.

BGINFO V1.0

Jeśli jesteś administratorem odpowiedzialnym za wiele serwerów, prawdopodobnie spędzasz znaczną ilość czasu, otwierając różne okna dialogowe informacji, aby przypomnieć sobie o wartościach różnych właściwości systemowych, takich jak zainstalowana wersja dodatku Service Pack, adresy IP, nazwa komputera, rozmiar pamięci i szybkość procesora. Teraz możesz mieć wszystkie te informacje w widoku prostym na pulpicie każdego serwera przy użyciu narzędzia BgInfo opracowanego przez firmę Bryce.

Po uruchomieniu narzędzia BgInfo tworzy tło pulpitu, które automatycznie zgłasza różne przydatne cechy systemu. Możesz umieścić BgInfo w folderze Start, aby informacje są dostępne za każdym razem, gdy się logujesz, i można zmodyfikować dane wyświetlane przez bgInfo, nawet dodając własne. Za pomocą narzędzia BgInfo zainstalowanego na serwerach zaoszczędzisz czas, który wielokrotnie szukał łatwo zapomnianych informacji.

Pobierz plik BgInfo v1.0 pod adresem www.sysinternals.com/misc.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.

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

SYSINTERNALS AT WWW.MICROSOFT.COM

Nie mam żadnych nowych artykułów z bazy wiedzy, które odwołują się do programu Sysinternals do raportu, ale firma Microsoft dodała kilka dość głośnych linków do aplikacji Sysinternals w części Witryny TechNet. Pierwszy z nich znajduje się w "Zapytaj nas o... Kolumna Security" w www.microsoft.com/TechNet/security/au022800.asp, gdzie felietonista Joel Scambray ostrzega czytelników, że NTFSDOS (www.sysinternals.com/ntfspro.htm) może być używany przez złośliwego użytkownika do zmiany zawartości usługi Active Directory kontrolera domeny systemu Windows 2000.

Drugie odwołanie znajduje się w kolumnie "Inside Microsoft" w www.microsoft.com/technet/inside/default.asp. Kolumna to Q&A-style i zaczyna się od dwóch pytań związanych z ustaleniem, jaka aplikacja ma otwarty konkretny plik. W trakcie odpowiadania, gdzie czytelnicy są wskazywani na HandleEx (www.sysinternals.com/handleex.htm) i NtHandle (www.sysinternals.com/nthandle.htm), autor artykułu (Mole) stwierdza to o Sysinternals: "Istnieje tylko TON wielkich narzędzi tammany, które nie będą kosztować Cię dime. Nawet Mole odnosi się do Sysinternals od czasu do czasu (Co? Myślałeś, że być może Mole trzyma wszystkie te informacje w głowie?). Po raz kolejny, to jest miejsce, w którym wyśle cię." Zbliża się to do oficjalnego poparcia witryny przez firmę Microsoft, jak można się spodziewać.

INFORMACJE WEWNĘTRZNE

MOC UPRAWNIEŃ DEBUGOWANIA

W przeciwieństwie do innych monitorów danych wyjściowych debugowania, w tym dbmon, mój monitor debugowania DebugView (www.sysinternals.com/dbgview.htm) wymaga lokalnych Administracja istrator uprawnień do wykonania, ponieważ instaluje sterownik urządzenia, który przechwytuje dane wyjściowe debugowania trybu jądra. W rezultacie otrzymałem dziesiątki wiadomości e-mail od deweloperów, którzy narzekają, że ich zarządzanie nie da im uprawnień administratora lokalnego, tylko uprawnienia debugowania. Argument mówi, że uprawnienie debugowania jest z jakiegoś powodu, a wszyscy deweloperzy aplikacji muszą opracowywać. Ci deweloperzy proszą mnie o zmianę widoku DebugView, aby zainstalować sterownik tylko wtedy, gdy użytkownik ma uprawnienia administratora, a w przeciwnym razie po prostu zbiera dane wyjściowe debugowania Win32.

Te żądania zawsze dają mi chichot, ponieważ zarządzanie, które sprawia, że argument uprawnień debugowania nie zdaje sobie sprawy, jest to, że to uprawnienie otwiera drzwi do uprawnień administratora lokalnego. Przy użyciu uprawnień debugowania deweloper może mieć dołączanie debugera do procesu urzędu zabezpieczeń lokalnych (LSASS) i manipulowanie nim, aby nadać im uprawnienia administratora lokalnego podczas następnego logowania. Mogą też wstrzyknąć kod do dowolnego procesu uruchomionego na koncie systemowym, który doda konto do lokalnej grupy administratorów. Kiedy wyjaśniam to deweloperom, którzy czasami reagują, że ich zarządzanie nie kupuje argumentu. Do tej pory nie miałem nic dla nich, aby wrócić do zarządzania, aby ich sprawa, ale niedawna wysypka takich e-maili skłoniła mnie do podjęcia działań.

LogonEx, narzędzie, które można pobrać na www.sysinternals.com/logonex.zip, graficznie wykazuje siłę uprawnień debugowania. Funkcja LogonEx działa w systemach Windows NT i Windows 2000. Aby najlepiej go pokazać, utwórz konto, które jest normalnym kontem użytkownika, z wyjątkiem dodawania uprawnień "Debugowanie programów". Wyloguj się i zaloguj się na tym koncie i uruchom polecenie LogonEx. Pliki symboli dla biblioteki msv1_0.dll będą potrzebne dla konkretnej instalacji (deweloperzy zazwyczaj mają zainstalowane symbole systemowe), których element LogonEx używa do lokalizowania punktu wejścia funkcji i stosowania poprawki MsvpPasswordValidate . Gdy funkcja LogonEx utworzy poprawkę, będzie można zalogować się do systemu przy użyciu dowolnego konta bez określania hasła. Ukończ pokaz, logując się jako administrator i dodając konto utworzone do lokalnej grupy administratorów.

LogonEx to tylko jeden przykład sposobu, w jaki uprawnienie debugowania umożliwia deweloperowi przejęcie kontroli nad systemem, ale istnieje wiele innych. Mam nadzieję, że logonEx przekona zarządzanie, że nie ma sensu, aby nie dać deweloperom uprawnień administratora lokalnego (należy jednak pamiętać, że nie mówię o uprawnieniach administratora domeny, co jest inną historią, którą administrator lokalny panuje tylko nad własnym komputerem, a nie innymi, podczas gdy administrator domeny reguły sieci).

NOWE INTERFEJSY API W SYSTEMIE WIN2K SP1?

Po tym, jak wielu użytkowników napotkało problemy z dodatkiem Service Pack NT 4 (SP), co powodowało nowe błędy, firma Microsoft przyjęła zasady nieuwzwalania na nowe funkcje w sp, aby zminimalizować prawdopodobieństwo wprowadzenia nowych problemów podczas rozwiązywania starych. Albo tak myśleliśmy. System Windows 2000 z dodatkiem SP 1 został niedawno wydany i nie ma żadnych nowych funkcji. Jednak szczegółowa inspekcja Ntoskrnl.exe, pliku zawierającego składniki wykonawcze i składniki jądra systemu Windows 2000 oraz Ntdll.dll, bibliotekę zawierającą natywny interfejs API i moduł ładujący, ujawnia, że nowy interfejs API zadebiutował w dodatku SP 1.

Nowy interfejs API składa się z następujących funkcji:

   RtlTraceDatabaseAdd
   RtlTraceDatabaseCreate
   RtlTraceDatabaseDestroy
   RtlTraceDatabaseEnumerate
   RtlTraceDatabaseFind
   RtlTraceDatabaseLock
   RtlTraceDatabaseUnlock
   RtlTraceDatabaseValidate

Nazwy funkcji są dość opisowe, dlatego jest to wyraźnie interfejs API do rejestrowania zdarzeń. Interesującym aspektem interfejsu API jest to, że jego implementacja jest duplikowana w ntdll i Ntoskrnl jest inna niż inne interfejsy API Ntdll, które wywołuje usługi implementacji w Ntoskrnl.

Badanie implementacji interfejsu API pokazuje, że jest on używany w następujący sposób: aplikacja tworzy bazę danych śledzenia, która jest przechowywana w pamięci wirtualnej aplikacji i dodaje wpisy do bazy danych. W pewnym momencie aplikacja może wyliczyć zawartość bazy danych, a po zakończeniu jej z bazą danych ją usunie. Dziwne, że nie ma sposobu na usunięcie wpisów bazy danych.

Co korzysta z tego nowego interfejsu API? Nic, co jest zainstalowane na mojej dość pełne funkcje windows 2000 Advanced Server instalacji, więc nie jest jasne, że wszystko działa. Być może był to interfejs API debugowania, który został przypadkowo uwzględniony w kodzie wydania sp 1.

Opublikowano środę, 30 sierpnia 2000 19:07 przez ottoh

[Archiwum biuletynów ^][< Wolumin 2, Numer 3][Wolumin 2, Liczba 5 >]