Share via


[Nieuwsbrievenarchief ^] [< Volume 2, Getal 3] [Volume 2, Getal 5 >]

The Systems Internals Newsletter Volume 2, Nummer 4

www.sysinternals.com
Copyright © 2000 Mark Russinovich


30 augustus 2000 - In dit probleem:

  1. HOOFDARTIKEL

  2. WAT IS ER NIEUW IN SYSINTERNALS

    • ListDlls v2.23
    • HandleEx v2.26
    • ElogList v2.02
    • LoggedOn v1.1
    • Blauwbeeld v2.21
    • PageDefrag v2.01
    • LoadOrder v1.1
    • ClockRes v1.0
    • BgInfo v1.0
    • Binnen Windows 2000, 3e Ed.
    • Sysinternals bij Microsoft
  3. INFORMATIE OVER INTERNE GEGEVENS

    • De kracht van de bevoegdheid DEBUG
    • Nieuwe API's in Win2K SP1?
    • WinDev 2000 West
  4. WAT KOMT ER AAN DE DAG?

    • Tokenmon

CO-SPONSOR: WINTERNALS SOFTWARE

De Sysinternals Newsletter wordt gesponsord door Winternals Software, op het web op www.winternals.com. Winternals Software is de toonaangevende ontwikkelaar en provider van geavanceerde systeemhulpprogramma's voor Windows NT/2K. Winternals Software producten omvatten FAT32 voor Windows NT 4.0, NTFSDOS Professional Edition (een read/write NTFS-stuurprogramma voor DOS) en Remote Recover.

Winternals Software's ERD Commander 2000 is de nieuwste release in zijn bekroonde ERD Commander productlijn. De nieuwe functies van ERD Commander 2000, waaronder ingebouwde register- en bestandseditors, maken het de meest geavanceerde hulpprogramma's voor Windows NT en Windows 2000 voor herstel. U kunt ERD Commander 2000 installeren op diskettes, een cd-rom en zelfs de harde schijf van een systeem voor snelle toegang, en de installatiewizard maakt het toevoegen van SCSI- en andere stuurprogramma's voor massaopslag van derden een fluitje van een cent. ERD Commander 2000 is $ 349, of slechts $ 49 voor bestaande ERD Commander Professional eigenaren. Meer informatie en download de evaluatieversie op www.winternals.com/products/erdcommander2000.shtml.

CO-SPONSOR: WINDOWS 2000 MAGAZINE

Windows 2000 Magazine bevat praktische oplossingen voor mensen die dagelijks met Windows NT/2000 werken. Bestel nu en zonder risico een gratis voorbeeldprobleem. Als u besluit uw abonnement voort te zetten, ontvangt u nog 13 problemen tegen 40% korting op de prijs van de nieuwsstand. Abonneer u vandaag op: http://www.win2000mag.com/sub.cfm?code=fs00inhs13

Hallo allemaal,

Welkom bij de Sysinternals nieuwsbrief. De nieuwsbrief heeft momenteel 25.000 abonnees.

Ik breng veel tijd door in Regmon, Filemon en DebugView, hulpprogramma's die Bryce en ik hebben ontwikkeld bij Sysinternals. Regmon is een registertoegangsmonitor (www.sysinternals.com/regmon.htm), Filemon is een monitor voor bestandstoegang (www.sysinternals.com/filemon.htm) en DebugView is een monitor voor foutopsporingsuitvoer (www.sysinternals.com/dbgview.htm). Af en toe zie ik een toepassing of apparaatstuurprogramma dat is geïnstalleerd op een van mijn verschillende systemen die continue activiteit genereren die zichtbaar is in een van deze hulpprogramma's. Ik heb het niet over noodzakelijke activiteit, maar de acties die de software uitvoert, hebben meestal een terugkerende aard en onderzoek van de uitvoertraceringen onthult dat de software gebruikmaakt van een pollingtechniek waarbij het gebruik van een ander minder intrusief mechanisme mogelijk is.

Verschillende commerciële virusscanners voeren bijvoorbeeld een query uit op hun virushandtekeningsbestand meerdere keren per seconde om te zien of het is bijgewerkt. Een van mijn systemen heeft een printerstuurprogramma van een belangrijke printerfabrikant die voortdurend foutopsporingsinstructies uitvoert die, door hun opname van het woord 'polling', adverteren dat ze polling zijn. In een van mijn favoriete voorbeelden voert een hulpprogramma dat wordt aangekondigd als verbetering van de systeemprestaties van een grote leverancier van nutsbedrijven meerdere keren per seconde een query uit op verschillende registersleutels van de leverancier. Een voorbeeld van een ander type slordig coderen bevindt zich in een netwerkadapter van een grote netwerkleverancier die een softwareonderdeel in de gebruikersmodus bevat dat ingesloten onderbrekingspunten voor foutopsporing bevat die continu worden gereisd terwijl de software wordt uitgevoerd. Als een toepassing een wijziging in het bestand moet detecteren, kan deze een melding voor mapwijziging aanvragen. Op dezelfde manier kan het als wijzigingen in een registersleutel moeten worden gedetecteerd, een melding over sleutelwijzigingen aanvragen. Commerciële software mag nooit foutopsporingsuitvoer of onderbrekingspunten voor foutopsporing bevatten die standaard zijn ingeschakeld.

Misschien is het meest elementaire voorbeeld echter de Microsoft Windows Media Program-service die is gebundeld met Windows 2000 Server (\Winnt\System32\Windows Media\Server\Npsm.exe): het leest de eerste 2 kB van \Winnt\System32\Windows Media\Server\ASDB\mdsas.mdb ongeveer 60 keer per seconde op een systeem waar anders geen activiteit is (inclusief geen mediaservice). Er is geen excuus voor dit, vooral omdat dit de algehele prestaties van de server nadelig kan beïnvloeden.

Ik weet zeker dat als u Regmon, Filemon of DebugView hebt gebruikt voor een periode die u waarschijnlijk vergelijkbare voorbeelden tegenkomt. Als u er een ziet, moet u niet alleen een filter instellen en vergeten, e-mail de leverancier die klaagt over hun slordige programmering.

Geef de nieuwsbrief door aan vrienden die u denkt geïnteresseerd te zijn in de inhoud.

Hartelijk dank!

-Merken

WAT IS ER NIEUW IN SYSINTERNALS

LISTDLLS V2.23

ListDLLs is een opdrachtregelprogramma met gedetailleerde informatie over de DLL's die processen hebben geladen. ListDLLs bevatten bijvoorbeeld het basisgeheugenadres, de grootte, de versie en het volledige pad van elke DLL. In deze nieuwe versie ziet u de opdrachtregel die is gebruikt om een proces te starten, inclusief parameters die zijn doorgegeven op de opdrachtregel. Hiermee kunt u onderscheid maken tussen meerdere processen en problemen met betrekking tot specifieke opdrachtregelopties oplossen.

Download ListDLLs v2.23 op www.sysinternals.com/listdlls.htm.

HANDLEEX V2.26

HandleEx is een toepassing die informatie weergeeft over welke ingangen en DLL-processen zijn geopend of geladen. De weergave bestaat uit twee subvensters. Bovenaan ziet u altijd een lijst met de momenteel actieve processen, inclusief de namen van hun eigen accounts, terwijl de informatie die in het onderste venster wordt weergegeven, afhankelijk is van de modus waarin HandleEx zich bevindt: als HandleEx in de handlemodus staat, ziet u de ingangen die het proces in het bovenste venster heeft geopend. als deze zich in de DLL-modus bevindt, ziet u de DLL's en geheugentoewijzingen die door het proces zijn geladen.

De nieuwste release van HandleEx bevat verschillende nieuwe functies. Ten eerste, zoals ListDLLs, wordt nu de opdrachtregel weergegeven die is gebruikt om een proces te starten wanneer u de eigenschappen van het proces bekijkt.

Een van de tekortkomingen van HandleEx vóór deze versie was dat hoewel de naam van het account werd weergegeven waarin systeemprocessen en -processen van uw aanmeldingssessie werden uitgevoerd, het niet in staat was om het Windows NT/2000-beveiligingsmodel te omzeilen om de eigenaar van processen weer te geven die zijn gestart vanuit andere gebruikersaccounts (het Pview-programma van de Windows NT/2000 Resource Kits heeft ook last van deze beperking). Dit was pijnlijk duidelijk in NT 4 Terminal Server- en Windows 2000 Terminal Services-omgevingen, waarbij HandleEx aangaf dat processen van andere gebruikerssessies onbekende eigenaren hadden. HandleEx v2.26 implementeert een truc zodat het het account voor alle processen kan bepalen, zonder uitzondering, waardoor het een ideaal hulpmiddel is voor Terminal Services-omgevingen.

Met de laatste nieuwe functie van HandleEx v2.26 kunt u elke geopende ingang forceren. Ik heb deze functie toegevoegd nadat ik er veel aanvragen voor heb ontvangen. Ik raad u aan om het met extreme voorzichtigheid te gebruiken, maar omdat toepassingen over het algemeen niet zijn geschreven om te verwachten dat ingangen plotseling ongeldig worden en toepassingen met ingangen geforceerd gesloten zich mogelijk onregelmatig gedragen of vastlopen als gevolg hiervan.

Download HandleEx v2.26 op www.sysinternals.com/handleex.htm.

ELOGLIST V2.02

De Windows 2000 Resource Kit bevat een hulpprogramma met de naam ELogDmp waarmee u records kunt dumpen vanuit een gebeurtenislogboek op de lokale of externe computer. ELogList krachtiger dan ElogDmp omdat u hiermee ook een optionele accountnaam en -wachtwoord kunt opgeven, zodat u toegang hebt tot de gebeurtenislogboeken van een computer vanuit een ander account dan het account waaruit u het hulpprogramma uitvoert. Bovendien worden in het ElogDmp-hulpprogramma vermeldingen in gebeurtenislogboeken in hun onbewerkte vorm weergegeven, waardoor de uitvoer moeilijk te interpreteren is, worden in deze ElogList-updatelogboekvermeldingen opgemaakt om tekst weer te geven zoals deze wordt weergegeven in de Windows NT/2000-Logboeken s. Zelfs wanneer u gebeurtenislogboeken van externe systemen weergeeft, gebruikt ElogList de juiste berichtbestanden op het externe systeem voor de opmaaktekenreeksgegevens.

Download ElogList v2.02 op www.sysinternals.com/eloglist.htm.

LOGON V1.1

LoggedOn is een opdrachtregel-applet geeft aan wie is aangemeld op een bepaalde computer, lokaal of via resourceshares. Met de versie 1.1-update kunt u in uw netwerk zoeken naar aanmeldingssessies die zijn gekoppeld aan een bepaalde gebruiker. Deze functie is handig in situaties waarin u updates wilt uitvoeren voor een gebruikersaccount en moet controleren of de gebruiker momenteel niet is aangemeld.

Download LoggedOn v1.1 met volledige bron op www.sysinternals.com/misc.htm.

BLUESCREEN V2.21

De meeste van jullie zijn nu ongetwijfeld bekend met de beroemde Sysinternals Blue Screen-schermbeveiliging, die een Windows NT- of Windows 2000-crash en opnieuw opstarten weergeeft. Sinds de eerste release heb ik continu aanvragen ontvangen van Windows 9x-gebruikers die de schermbeveiliging op hun computers willen uitvoeren, dus ik heb het eindelijk overgezet naar Windows 9x. In Windows 9x simuleert het een Windows 2000-crash en start het opnieuw op.

De enige vereiste voor het gebruik van de Sysintenals Blue Screen-schermbeveiliging in Windows 9x is dat u een kopie van een Windows 2000-Ntoskrnl.exe-bestand in de \Windows\System map kunt plaatsen- Blue Screen vereist het bestand voor het Windows 2000-welkomstscherm.

U kunt nu echt verwarren met nietsvermoedende Windows 9x-gebruikers die teruggaan naar hun computer om te ontdekken dat het vastzit in een Windows 2000-crash en herstartcyclus!

Download Bluescreen Screen Saver v2.21 op www.sysinternals.com/bluescreen.htm.

PAGEDEFRAG V2.01

PageDefrag is een defragmentatiehulpprogramma dat wordt uitgevoerd tijdens het opstarten om de pagingbestanden en registerkasten van uw systeem te defragmenteren. PageDefrag was het eerste hulpprogramma dat register hives kon defragmenteren, maar sinds de release dat de functionaliteit is toegevoegd aan verschillende commerciële defragmentatieprogramma's. PageDefrag is echter nog steeds gratis en versie 2.01 werkt op Windows 2000 en Windows NT 4.

Als u geïnteresseerd bent in de defragmentatie-interface van Windows NT 4 en Windows 2000, kunt u hierover leren en broncode downloaden naar een interactieve bestandsdefragmentatie op www.sysinternals.com/defrag.htm. Sysinternals documenteerden de defragmentatieinterface jaren voordat Microsoft deze in de Platform SDK bevatte, en verschillende commerciële defragmentatieprogramma's maakten gebruik van onze documentatie en voorbeeldcode.

Download PageDefrag v2.01 op www.sysinternals.com/pagedfrg.htm. Bekijk de defragmentatieinterfacedocumentatie op www.sysinternals.com/defrag.htm.

LOADORDER V1.1

Hebt u zich ooit afgevraagd in welke volgorde apparaatstuurprogramma's en services worden geladen en geïnitialiseerd? Nu kunt u het gemakkelijk uitzoeken. LoadOrder is een hulpprogramma waarmee de informatie wordt HKLM\System\CurrentControlSet\Services verwerkt om een afbeelding te maken van de laadvolgorde van stuurprogramma's en services.

Download LoadOrder v1.1 op www.sysinternals.com/misc.htm.

CLOCKRES V1.0

In mijn artikelen over de planner heb ik het gehad over het feit dat Windows NT/2000 thread quanta (de lengte van de beurt van een thread op een CPU) is gebaseerd op de resolutie van de systeemklok. De resolutie van de klok is ook van invloed op de latentie van windows-timergebeurtenissen. In het artikel op www.sysinternals.com/timer.htm wordt zelfs besproken hoe de toepassingen de resolutie van de klok kunnen manipuleren. Op de meeste SMP's is de resolutie 15 ms en op uniprocessors zijn 10 ms, waarden die zijn ingesteld door de standaard-SMP- en uniprocessor-HALs (Hardware Abstraction Layer).

Hoewel de meeste systemen de hierboven genoemde algemene waarden gebruiken, hoe kunt u de werkelijke resolutie van de klok op uw computers bepalen? Het antwoord ligt in de GetSystemTimeAdjustment Win32-API, waarmee wordt aangegeven of het systeem een periodieke aanpassing toepast op de tijd van de dagklok. Het gebeurt alleen dat deze API ook het interval van de klok retourneert. De ClockRes-applet gebruikt de API om u de resolutie van de klok van een systeem te vertellen.

Download ClockRes plus bron op www.sysinternals.com/misc.htm.

BGINFO V1.0

Als u een beheerder bent die verantwoordelijk is voor meerdere servers, besteedt u waarschijnlijk een aanzienlijke hoeveelheid tijd aan het openen van verschillende informatiedialoogvensters om uzelf te herinneren aan de waarden van verschillende systeemeigenschappen, zoals geïnstalleerde servicepackversie, IP-adressen, computernaam, geheugengrootte en processorsnelheid. Nu kunt u al deze informatie in eenvoudige weergave op het bureaublad van elke server met behulp van het BgInfo-hulpprogramma dat Bryce heeft ontwikkeld.

Wanneer u deze uitvoert, maakt BgInfo een bureaubladachtergrond die automatisch een verscheidenheid aan nuttige systeemkenmerken rapporteert. U kunt BgInfo in uw startmap plaatsen, zodat de informatie voor u beschikbaar is wanneer u zich aanmeldt, en u kunt de gegevens wijzigen die BgInfo weergeeft, zelfs uw eigen gegevens toevoegen. Als BgInfo op uw servers is geïnstalleerd, bespaart u de tijd die u herhaaldelijk hebt besteed aan het opzoeken van gemakkelijk vergeten informatie.

Download BgInfo v1.0 op www.sysinternals.com/misc.htm.

BINNEN WINDOWS 2000, 3RD EDITION

Het officiële boek over de interne werking van Windows 2000 is nu beschikbaar! Deze editie, mede-auteur van David Salomon (www.solsem.com) en Mark Russinovich, is meer dan 40% groter dan de vorige, met nieuwe dekking van netwerken, plug-and-play, energiebeheer, services, het register, WMI, opstarten en afsluiten, en opslag. Het bevat ook een cd met verschillende krachtige hulpprogramma's, die nergens anders beschikbaar zijn, voor het onderzoeken van interne windows 2000-interne functies.

Bekijk de inhoudsopgave van het boek en bestel nu via www.sysinternals.com/insidew2k.htm.

SYSINTERNALS AT WWW.MICROSOFT.COM

Ik heb geen nieuwe KB-artikelen die verwijzen naar Sysinternals om te rapporteren, maar Microsoft heeft een aantal behoorlijk hoge profielkoppelingen toegevoegd aan Sysinternals in het TechNet-deel van de site. De eerste bevindt zich in de "Ask Us about... Beveiligingskolom op www.microsoft.com/TechNet/security/au022800.asp, waarbij columnist Joel Scambray lezers waarschuwt dat NTFSDOS (www.sysinternals.com/ntfspro.htm) kan worden gebruikt door een kwaadwillende gebruiker om de inhoud van een Active Directory van een Windows 2000-domeincontroller te wijzigen.

De tweede verwijzing bevindt zich in de kolom 'Inside Microsoft' op www.microsoft.com/technet/inside/default.asp. De kolom is Q&A-stijl en begint met twee vragen met betrekking tot het bepalen van welke toepassing een bepaald bestand heeft geopend. In de loop van het beantwoorden, waar lezers wijzen op HandleEx (www.sysinternals.com/handleex.htm) en NtHandle (www.sysinternals.com/nthandle.htm), vermeldt de auteur van het artikel (de "Mole") dit over Sysinternals: "Er is slechts een TON van geweldige hulpprogramma's die u geen cent kost. Zelfs de Mole verwijst van tijd tot tijd naar Sysinternals (Wat? Je dacht dat Mole al deze informatie in zijn hoofd bewaart?). Nogmaals, dit is waar hij je gaat sturen." Dit ligt ongeveer in de buurt van een officiële goedkeuring van de site door Microsoft, zoals we kunnen verwachten.

INFORMATIE OVER INTERNE GEGEVENS

DE KRACHT VAN DE FOUTOPSPORINGSBEVOEGDHEDEN

In tegenstelling tot andere monitors voor foutopsporingsuitvoer, waaronder dbmon, vereist mijn DebugView-monitor voor foutopsporing (www.sysinternals.com/dbgview.htm) lokale administratorbevoegdheden voor uitvoering, omdat er een apparaatstuurprogramma wordt geïnstalleerd dat foutopsporingsuitvoer in de kernelmodus vastlegt. Als gevolg hiervan heb ik tientallen e-mails ontvangen van ontwikkelaars die klagen dat hun beheer hen geen lokale beheerdersbevoegdheden geeft, alleen de bevoegdheid Voor foutopsporing. Het argument gaat ervan uit dat de bevoegdheid voor foutopsporing er om een reden is en dat alle toepassingsontwikkelaars moeten ontwikkelen. Deze ontwikkelaars vragen mij om DebugView te wijzigen, zodat het alleen het stuurprogramma installeert als de gebruiker beheerdersbevoegdheden heeft en anders alleen win32-foutopsporingsuitvoer verzamelt.

Deze aanvragen geven me altijd een chuckle, omdat wat het beheer dat het argument Foutopsporingsbevoegdheden maakt, niet kan worden gerealiseerd, is dat deze bevoegdheid de deur opent naar lokale beheerdersbevoegdheden. Met behulp van de foutopsporingsbevoegdheden kan een ontwikkelaar een foutopsporingsprogramma koppelen aan het LSASS-proces (Local Security Authority) en deze bewerken om hen lokale beheerdersbevoegdheden te geven bij de volgende aanmelding. Of ze kunnen code injecteren in elk proces dat wordt uitgevoerd in het systeemaccount waarmee hun account wordt toegevoegd aan de lokale beheerdersgroep. Wanneer ik dit aan de klagende ontwikkelaars uitleg, reageren ze soms dat hun management het argument niet koopt. Tot nu toe heb ik niets voor hen gehad om terug te nemen naar hun management om hun zaak te maken, maar een recente uitslag van dergelijke e-mails heeft me gevraagd actie te ondernemen.

LogonEx, een hulpprogramma dat u kunt downloaden op www.sysinternals.com/logonex.zip, vertoont grafisch het clout van de foutopsporingsbevoegdheden. LogonEx werkt op Windows NT en Windows 2000. Als u het beste wilt weergeven, maakt u een account dat een normaal gebruikersaccount is, met uitzondering van de toevoeging van de bevoegdheid 'Programma's voor foutopsporing'. Meld u af en meld u aan bij dat account en voer LogonEx uit. U hebt de symboolbestanden nodig voor msv1_0.dll voor uw specifieke installatie (ontwikkelaars hebben meestal systeemsymbolen geïnstalleerd), die LogonEx gebruikt om het toegangspunt van de MsvpPasswordValidate functie te vinden en deze te patchen. Nadat LogonEx de patch heeft gemaakt, kunt u zich aanmelden bij het systeem met behulp van een account zonder een wachtwoord op te geven. Voltooi de demonstratie door u aan te melden als beheerder en het account toe te voegen dat u hebt gemaakt aan de lokale beheerdersgroep.

LogonEx is slechts een voorbeeld van hoe de foutopsporingsbevoegdheden een ontwikkelaar in staat stelt om de controle over een systeem te nemen, maar er zijn tal van andere. Ik hoop dat LogonEx het beheer ervan overtuigt dat het geen zin heeft om ontwikkelaars geen lokale beheerdersbevoegdheden te geven (Opmerking, ik heb het echter niet over bevoegdheden van domeinbeheerders, wat een ander verhaal is dat een lokale beheerder alleen over hun eigen computer regeert, niet over andere, terwijl een domeinbeheerder een netwerk beheert).

NIEUWE API'S IN WIN2K SP1?

Nadat veel gebruikers problemen hebben ondervonden met NT 4-servicepacks (SP) die nieuwe fouten veroorzaken, heeft Microsoft een beleid aangenomen waarbij geen nieuwe functionaliteit in een SP wordt opgenomen om de kans te minimaliseren dat ze nieuwe problemen zouden introduceren bij het oplossen van oude fouten. Of zo dachten we. Windows 2000 SP 1 is onlangs uitgebracht en leek geen nieuwe functionaliteit te hebben. Een gedetailleerde inspectie van Ntoskrnl.exe, het bestand dat de Windows 2000-executive- en kernelonderdelen bevat, en Ntdll.dll, de bibliotheek die de systeemeigen API en het laadprogramma bevat, laat echter zien dat een nieuwe API zijn debuut heeft gemaakt in SP 1.

De nieuwe API bestaat uit de volgende functies:

   RtlTraceDatabaseAdd
   RtlTraceDatabaseCreate
   RtlTraceDatabaseDestroy
   RtlTraceDatabaseEnumerate
   RtlTraceDatabaseFind
   RtlTraceDatabaseLock
   RtlTraceDatabaseUnlock
   RtlTraceDatabaseValidate

De namen van de functies zijn behoorlijk beschrijvend, dus dit is duidelijk een API voor het registreren van gebeurtenissen. Een interessant aspect van de API is dat de implementatie ervan wordt gedupliceerd in Ntdll en Ntoskrnl, dit verschilt van andere Ntdll-API's die de services van een implementatie in Ntoskrnl aanroepen.

Uit onderzoek van de implementatie van de API blijkt dat deze als volgt wordt gebruikt: een toepassing maakt een traceringsdatabase, die is opgeslagen in het virtuele geheugen van de toepassing en vermeldingen toevoegt aan de database. Op een bepaald moment kan de toepassing de inhoud van de database inventariseren en wanneer deze klaar is met de database, wordt deze verwijderd. Vreemd genoeg lijkt er geen manier te zijn om databasevermeldingen te verwijderen.

Wat maakt gebruik van deze nieuwe API? Niets dat is geïnstalleerd op mijn redelijk volledige windows 2000 Advanced Server-installatie, dus het is niet duidelijk dat er iets gebeurt. Misschien is dit een foutopsporings-API die per ongeluk is opgenomen in de SP 1-releasecode.

Gepubliceerd woensdag 30 augustus 2000 17:07 door ottoh

[Nieuwsbrievenarchief ^] [< Volume 2, Getal 3] [Volume 2, Getal 5 >]