[Nyhetsbrev arkiv ^][< Volym 6, nummer 2][Volym 7, specialmeddelande >]

System Internals Newsletter Volym 7, Nummer 1

http://www.sysinternals.com
Copyright (C) 2005 Mark Russinovich


5 januari 2005 – I det här problemet:

  1. REDAKTIONELLA

    • Har du DEP?
  2. WINDOWS INTERNALS, 4TH EDITION

  3. NYHETER PÅ SYSINTERNALS

    • Novemberstatistik
    • Sysinternals Magazine Artiklar
    • Sysinternals RSS-feed
    • Mark är en Microsoft MVP
    • Kör automatiskt v6.01
    • Process Explorer v8.61
    • Sigcheck v1.0
    • Bginfo v4.07
    • Regjump v1.0
    • Hex2dec v1.0
    • Tcpvcon v2.34
    • PsTools Uppdateringar
    • Sysinternals på Microsoft
  4. INTERN INFORMATION

    • Internetbläddring
    • Använda LiveKd för att felsöka sjuka system
    • Creekside?
    • ChkReg Registry Fixer
    • Minnesdiagnostik för Windows
    • Undersöka odokumenterade gränssnitt
  5. INTERN UTBILDNING

    • Windows Anslut ions i San Francisco
    • Praktiska Windows Internals/Sysinternals-klasser av Mark Russinovich & David Solomon

Sysinternals Nyhetsbrev sponsras av Winternals Software, på webben på http://www.winternals.com. Winternals Software är den ledande utvecklaren och leverantören av avancerade systemverktyg för Windows NT/2000/XP/2003.

Winternals är glada att kunna tillkännage den kommande versionen av administratörens Pak 5.0 med en omfattande uppdatering inklusive ERD Commander 2005.

Nya funktioner i ERD Commander 2005 är:

  • Crash Analyzer: Diagnostisera snabbt och enkelt den drivrutin som är ansvarig för en Windows-krasch – även om systemet inte startar
  • DiskWipe – Radera hårddiskar eller volymer på ett säkert sätt. Autoruns: Se vilka program som startar vid Installation av Windows och användarinloggning – användbart för att diagnostisera problem med systemresurser och hitta potentiell skadlig kod
  • FireFox-webbläsare: ladda ned snabbkorrigeringar, drivrutinsuppdateringar, sök efter hjälp i Microsoft Knowledge Base – allt i det system som du försöker reparera
  • Guiden Avinstallera snabbkorrigeringar, som gör att du kan ta bort snabbkorrigeringar och servicepaket i ett system som inte är startbart
  • Systemfilreparation, som kontrollerar att Windows-systemfilerna är integritetskontrollerade.

Dessa funktioner, många förbättringar och användbarhetsförbättringar för ERD Commander 2005 och en ny som är enklare att skapa och använda Remote Recover-klienten baserat på Windows PE ingår alla i den nya administratörens Pak 5.0, som är tillgänglig i slutet av januari 2005. Om du vill registrera dig för en utvärdering av administratörens Pak 5.0 när den släpps går du till http://www.winternals.com/ap5preview/.

REDAKTIONELLA

Hej!

Välkommen till Sysinternals nyhetsbrev. Nyhetsbrevet har för närvarande 40 000 prenumeranter.

Den ökande strömmen av skadlig kod, inklusive spionprogram och virus, har alla oroat sig för säkerheten. Bra säkerhetsåtgärder inkluderar att hålla jämna steg med operativsystem och programkorrigeringar, installera och konfigurera brandväggs-, antivirus- och spionprogramborttagningsverktyg och utöva omdöme när du laddar ned från Internet eller öppnar e-postbilagor. Trots noggranna åtgärder kan skadlig kod dock fortfarande hitta sätt att smyga av försvar och infektera en dator. Det vanligaste kryphålet i ett systems skydd är sårbarheten för buffertspill, och därför bör du vara bekant med windows XP Service Pack 2:s dep-funktion (Data Execution Prevention).

Ett buffertspill är ett programmeringsfel som skadliga program kan dra nytta av för att ta kontroll över tråden som kör kodningsfelet. Buffertspill är vanligtvis stackbaserade, vilket innebär att en angripare ger programmet mer data än vad som får plats i en buffert som lagras på stacken. Data skapas på ett sådant sätt att när funktionen med spillet försöker återgå till funktionen som den anropades från, återgår den i stället till en plats i data.

Tyvärr kan buffertspillfel plåga även den bäst testade och granskade programvaran. Flera buffertspill tillkännages för Windows och dess komponentprogramvara varje månad (Linux och dess program är inte immuna, med ett antal buffertspill i nivå med Windows). Ett vanligt tema för de flesta buffertöverflödesexploateringar är att de resulterar i körning av kod som placeras i minnesregioner som endast ska innehålla data.

Intel Itanium-processorn har stöd för skydd utan körning från dess version, men det var inte förrän Windows XP SP2 (och den kommande Windows Server 2003 SP1) som Windows faktiskt använder det här maskinvarustödet, till exempel genom att markera trådstackar och heapminne som icke-körbara. Andra processorer som stöder no-execute maskinvaruskydd är 64-bitars AMD64 Opteron och Athlon 64 och Intels klon som heter EM64T-now tillgänglig på Xeon- och Pentium 4-processorer. AMD och Intel introducerade nyligen 32-bitars processorer utan körningsstöd: AMD Sempron och Pentium 4 "J"-familjen (till exempel 520J, 540J osv.).

Det kan tyckas uppenbart för dig att Windows som standard bör framtvinga no-execute-skydd för staplar och programhapminne för att förhindra buffertöverflödesexploateringar, men det finns hundratusentals befintliga program, varav vissa faktiskt kan förlita sig på att inställningen inte tillämpas för korrekt åtgärd. Därför ger Windows XP SP2, den första versionen av Windows som framtvingar skydd utan körning, en administratörskontroll över vilka processer som skyddas och vilka som inte gör det. För det första, i ett beslut som syftar till att förbättra säkerheten i framtiden, tillämpar 64-bitarsversionen av Windows alltid no-execute-flaggor för alla 64-bitarsprocesser. Om en programvaruleverantör vill släppa ett 64-bitarsprogram måste de se till att de inte kör kod från icke-körbara minnesregioner (de kan markera en dataregion som körbar om de genererar kod direkt, som Java- och .NET-program ofta gör).

För det andra är 32-bitars Windows XP och Windows Server 2003 som standard för att skydda kärnoperativsystemavbildningar oftast avsedda för operativsystemkomponenter. Men för 32-bitarsprogram (som körs på antingen 32-bitars Windows eller 64-bitars Windows) är Windows XP som standard en "opt-in"-strategi (program skyddas inte som standard) medan Windows Server 2003 som standard är "opt-out" (program skyddas som standard men specifika program kan undantas). Detta är vettigt eftersom säkerheten vanligtvis har högre prioritet på serversystem. Du kan ändra opt-in- eller opt-out-inställningarna i konfigurationsdialogrutan för DEP som du kommer åt via knappen Inställningar i avsnittet Prestanda på sidan Avancerat på systemkontrollpanelens applet.

Som jag nämnde tidigare, med undantag för de relativt nya AMD Sempron och Pentium 4 "J"-processorer, saknar alla x86-kompatibla chips som hittills släppts inget stöd. Windows XP och Windows Server 2003 implementerar dock en begränsad form av DEP på de processorer som kallas "programvaru-DEP". Eftersom operativsystemet får kontroll över en tråd när tråden genererar ett fel kan det säkerställa att felhanteraren som körs är en som registreras statiskt av programmets kod. Detta förhindrar en exploatering som omdirigerar en tråds felhanterare för att köra skadlig kod i en spilld stackbuffert, vilket är vad kodade virus orsakade IIS att göra när det släpptes 2001.

Trots sin relativa enkelhet är DEP ett av de starkaste försvaren som operativsystemet erbjuder i sin sköld mot självförökning av skadlig kod. Tyvärr begränsar tre saker dess kraft: brist på maskinvarustöd i de flesta för närvarande distribuerade processorer för inställningen no-execute, standardinställningen för opt-in i Windows XP så att endast kärnoperativsystemprocesser skyddas och brist på medvetenhet. Programvaru-DEP är begränsat i dess omfång och därför är DEP endast marginellt effektivt om du inte kör Windows på maskinvara som stöder no-execute. Det faktum att Windows XP som standard väljer att använda innebär att även när användarna kör Windows på maskinvara utan körning är de enda processer som får DEP-skydd de som används i operativsystemet – om det finns ett buffertspill i brandväggen från tredje part, webbläsaren, e-postläsaren eller något annat nätverksaktiverat program är du fortfarande sårbar. Faktum är att vissa av de program som utnyttjas mest av skadlig kod, IIS och Outlook, inte skyddas under inställningen för att välja. Slutligen, eftersom de flesta inte är medvetna om dess standardbeteende, eller ens DEP alls, kommer system för det mesta att vara i riskzonen för buffertöverflödesproblem.

Det är dags att Microsoft får användarna att betala kompatibilitetspriset i utbyte mot bättre säkerhet eller så kommer användarna att få betala ett mycket högre pris i handen på virus - och de kommer i sin tur att skicka räkningen till Microsoft. Under tiden rekommenderar jag starkt att du uppgraderar till Windows XP SP2 (Windows XP 64-bitars edition och Windows Server 2003 SP1 har också stöd för no-execute), byta till opt-in och uppgradera till en processor utan körningsstöd (tyvärr får jag ingen provision).

Skicka nyhetsbrevet till vänner som du tror kan vara intresserade av dess innehåll.

Tack!

-Markera

WINDOWS INTERNALS, 4TH EDITION

Den officiella Microsoft-boken om internerna i Windows Server 2003, Windows 2000 och Windows XP, som jag var medförfattare till med Dave Solomon, finns nu i bokbutiker. Dave och jag utökade täckningen av den tidigare utgåvan med ca 25%, lägga till nytt material inte bara på Windows Server 2003 och XP ändringar, men på felsökningsverktyg och tekniker. Du hittar avancerade tips om hur du använder Process Explorer, Filemon och Regmon, och det finns ett helt nytt kapitel om Windows kraschdumpanalys.

Läs mer om bokens innehåll och beställning på nätet på

http://www.sysinternals.com/windowsinternals.shtml

NYHETER PÅ SYSINTERNALS

SYSINTERNALS RSS-FEED

Jag fick begäran om att lägga till en ny utstationering meddelandemekanism till Sysinternals så ofta att jag äntligen följde den webomfattande trenden och lade till ett RSS-flöde (om du inte är bekant med RSS-feeds, här är en bra primer: http://rss.softwaregarden.com/aboutrss.html). Flödet ger mig också möjlighet att meddela dig om mindre felkorrigeringar och uppdateringar som inte garanterar en fullständig lista på förstasidan. Det ser redan ut som det föredragna sättet för människor att lära sig om uppdateringar baserat på antalet träffar som flödet får per dag.

Få åtkomst till Sysinternals RSS-feed på:

http://www.sysinternals.com/sysinternals.xml

SYSINTERNALS MAGAZINE ARTIKLAR

För ungefär sex månader sedan började jag skriva en halvårskolumn i Windows IT Pro Magazine (tidigare Windows och .NET Magazine) på Sysinternals-verktyg. Varje kolumn beskriver ett annat verktyg med tips om avancerad användning och information om hur de fungerar.

Av de tre som har publicerats, som anges nedan, är de två första tillgängliga online av icke-prenumeranter och den tredje kommer snart att vara:

Autoruns: http://www.win2000mag.com/Windows/Article/ArticleID/44089/44089.html

Pslist och Pskill: http://www.winnetmag.com/Windows/Article/ArticleID/43569/43569.html

PsExec: http://www.winnetmag.com/Windows/Issues/IssueID/714/Index.html

MARK ÄR EN MICROSOFT MVP

Platform SDK Microsoft Most Valuable Professional (MVP) har utsett mig till MVP för 2005. Jag är tacksam mot honom och Microsoft för denna officiella bekräftelse av de bidrag jag har gjort till Microsoft-kunder med Sysinternals.

NOVEMBERSTATISTIK

Jag fick äntligen ett anständigt webbtrafikanalysprogram för Sysinternals och har analyserat loggfilerna för november månad. Storleken på siffrorna förvånade till och med mig. Här är några höjdpunkter:

  • 3,6 miljoner sidvisningar
  • 775 000 unika besökare
  • 1,2 miljoner nedladdningar av verktyg
  • 200 000 nedladdningar av Process Explorer, nedladdning nr 1

AUTORUNS V6.01

Autokörningar har utvecklats mycket under de senaste månaderna med två viktiga versionsnummeruppdateringar. Den senaste versionen av Autoruns visar platser för automatisk start utöver standardmapparna Kör nyckel och start, inklusive Winlogon-meddelande-DLL:er, Explorer-verktygsfält, namnområdestillägg och webbläsarhjälpobjekt och DLL:er för automatisk initiering. En annan ny funktion, Google-menyalternativet (lånat från Process Explorer) hjälper dig att identifiera okända bilder genom att öppna en webbläsare och initiera en sökning av det valda bildnamnet.

En annan ny funktion, verifiering av bildsignering, kan hjälpa dig att skilja mellan skadlig kod och systemkomponenter eller betrodda program. Microsoft innehåller vanligtvis hashvärden för operativsystemfiler som är signerade med Microsofts privata signeringsnyckel. Kryptografiska Windows-funktioner dekrypterar de signerade hashvärdena med Microsofts offentliga signeringsnyckel och Autoruns validerar avbildningarna i systemet genom att jämföra deras hashar med de dekrypterade versionerna och prefixa avbildningens företagsnamn med "(Verifierad)" när det finns en matchning. Om en avbildning har manipulerats, skadats, ersatts eller har en hash signerad av en utgivare som inte är betrodd av systemet, rapporterar Autoruns företagsnamnet för avbildningen som "(Inte verifierad)".

Som systemadministratör kanske du vill kontrollera de automatiska startavbildningarna i andra konton än den du är inloggad som, så Automatiska körningar innehåller nu en användarmeny med val för varje konto som har en profil lagrad på datorn.

Slutligen finns det nu en kommandoradsekvivalent till autokörningsgränssnittet, som kallas Autorunsc, som visar information om automatiska körningar till konsolen. Dess möjlighet att formatera utdata som CSV, i kombination med Sysinternals PsExec-verktyg, gör det enkelt för dig att generera inventeringar av de konfigurerade automatiska startavbildningarna för datorer i hela nätverket.

Ladda ned autokörningar på
http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml

PROCESS EXPLORER V8.61

Återigen har Process Explorer, ett verktyg som ersätter Task Manager som ett avancerat processhanteringsverktyg, varit det verktyg som jag har fokuserat mest på, och det beror på att jag får så mycket feedback för det. Sedan det senaste nyhetsbrevet har Process Explorer gått från version 8.4 till 8.6. En mängd nya funktioner markerar dessa två versioner, inklusive ett Google-menyobjekt som initierar en sökning efter information om en vald process, en strängflik i dialogrutan för processegenskaper som visar DE ASCII- och Unicode-strängar som finns i en processavbildningsfil, en strängmenypost som visar strängar i en vald DLL-bildfil. och namnet på den mest processorkrävande processen i knappbeskrivningen som visas när du håller muspekaren över ikonen för processutforskaren.

Många begärde funktioner som de missade när de bytte från Aktivitetshanteraren, till exempel fliken Aktivitetshanterarens program. Fliken Program visar en lista över fönster på den översta nivån på det interaktiva skrivbordet tillsammans med statusen för tråden som äger varje fönster: "Körs" om tråden för närvarande väntar på att få ett Windows-meddelande eller har bearbetat ett Windows-meddelande under de senaste fem sekunderna, och "svarar inte" annars (ironiskt nog betyder det vanligtvis att "körning" indikerar att tråden väntar och "svarar inte" att den inte körs). Du kan nu få samma information med Process Explorer genom att lägga till kolumnerna "Fönsterrubrik" och "Fönsterstatus" i processvyn.

Process Explorer har haft funktioner som är riktade at.NET processer under en tid, inklusive markering för .NET-processer och en .NET-prestandaflik i dialogrutan processegenskaper för .NET-processer. En .NET-process är en process som har lästs in och registrerats med .NET-körningen. Om en process registreras någon gång efter att processutforskaren har startats kanske den inte inser att det är en .NET-process, men den senaste versionen söker efter processer för .NET-status och jobbobjektmedlemskap när du uppdaterar visningen manuellt, antingen genom att trycka på knappen uppdatera verktygsfältet, F5-tangenten eller välja menyalternativet Uppdatera.

I situationer där du inte är säker på vilken process som äger ett fönster kan du använda den nya verktygsfältsknappen window-finder för att identifiera det. Dra bara verktygsfältsknappen, som ser ut som ett mål, från verktygsfältet och över fönstret i fråga och Processutforskaren väljer ägandeprocessen i processvyn.

Ett tillägg som kommer att vara omedelbart uppenbart för dig är mini-CPU-grafen som visas nära verktygsfältet. Det här diagrammet visar systemets cpu-användningshistorik, och precis som den expanderade version du får när du klickar på den för att öppna dialogrutan ProcessUtforskaren Systeminformation visas en knappbeskrivning som innehåller tidsstämpeln och den högsta CPU-användningsprocessen för punkten i diagrammet som du flyttar musen över. Du kan flytta grafen till var som helst i verktygsfältsområdet, även till dess en rad så att den sträcker sig över bredden i fönstret Processutforskaren.

Två säkerhetsrelaterade funktioner är verifiering av avbildningssignering och dep-status (data execution protection). När du aktiverar avbildningssigneringsalternativet kontrollerar Process Explorer om en processavbildning har signerats digitalt av betrodd undertecknare och, som Autoruns, prefixet företagsnamnet i dialogrutan för processegenskaper med "Verifierad" eller "Inte verifierad". Alternativet är inaktiverat som standard eftersom avbildningssigneringskontrollen kan ta flera sekunder när kontrollen går till webbplatser för att verifiera giltigheten för signeringscertifikat.

DEP, som jag beskriver i det här nyhetsbrevets introduktion, är något som du bör aktivera på Windows XP SP2 för förbättrat skydd mot buffertöverflödesexploateringar. Du kan kontrollera DEP-statusen för en process antingen genom att lägga till kolumnen "DEP-status" i processvyn eller genom att kontrollera fältet "DEP-status" på bildsidan i dialogrutan för processegenskaper.

Slutligen visar Process Explorer nu de drivrutiner som läses in i systemet i DLL-vyn för systemprocessen, vilket är den process som är associerad med kernel- och enhetsdrivrutinsarbetstrådar. Samma information är tillgänglig för varje drivrutin som för DLL:er som anges för andra processer, inklusive version, företagsnamn, fullständig sökväg och inläsningsadress i systemets adressutrymme.

Ladda ned Process Explorer på
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

SIGCHECK V1.0

Många av Sysinternals-verktygen använder funktioner som hjälper användare att identifiera skadlig kod och Sigcheck är ett kommandoradsverktyg som nästan uteslutande fokuserar på det målet. Den använder samma verifieringsfunktion för bildsignering som ingår i Autoruns och Process Explorer för att tala om för dig om en fil har signerats digitalt av en betrodd utgivare. Dessutom rapporterar den filversionsinformation för den bild eller de bilder som du anger, inklusive produktnamn, beskrivning, företagsnamn och version. Den här informationen liknar den som filever-verktyget som levereras med Windows XP och Windows Server 2003 rapporterar, men Sigcheck rapporterar också tidsstämpeln när filen ursprungligen "länkades" eller skapades för osignerade bilder och tidsstämpeln för bildsigneringen för dem som signerades. Slutligen signeras de flesta signerade hashar med nycklar som själva har signerats, en sekvens som utgör det som kallas en certifikatsigneringskedja. Sigcheck stöder ett kommandoradsalternativ som instruerar den att skriva ut signeringskedjan med information om var och en av undertecknarna i kedjan.

En av de potentiella säkerhetsrelaterade användningsområdena för Sigcheck är att undersöka eventuella osignerade .exe .dll eller .sys avbildningar i någon av katalogerna under roten för Windows-installationen (vanligtvis \Windows). Du kan enkelt identifiera osignerade .exe bilder genom att köra Sigcheck med den här kommandoraden, till exempel:

sigcheck -s -u c:\windows\*.exe

Alla Microsoft-avbildningar bör innehålla giltiga signaturer, men kommandot ovan visar tyvärr att många inte gör det, vilket resulterar i filer som kan utnyttjas för att dölja skadlig kod.

Ladda ned Sigcheck på
http://www.sysinternals.com/ntw2k/source/misc.shtml

BGINFO V4.07

Den här mindre uppdateringen av Bginfo, ett verktyg som visar den information som du konfigurerar på skrivbordet på den dator där du kör den för enkel visning, har bättre stöd för bitmappar som den måste sträcka sig för att passa den storlek du anger, förbättringar av CPU-identifiering, stöd för MySQL och förbättrad visningskompatibilitet för flera skärmar.

Ladda ned Bginfo på
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

REGJUMP V1.0

Om du någonsin har velat skapa Genvägar från Utforskaren till specifika registernycklar eller bara ange en nyckels sökväg och ha Regedit öppet till målplatsen så tycker du att Regjump är användbart. Regjump är ett kommandoradsverktyg som använder samma "jump-to"-teknik för registret som vi har banat väg för i Regmon. Ge Regjump en registersökväg som kommandoradsargument så öppnas Regedit och navigerar till den angivna nyckeln eller värdet.

Ladda ned Regjump på
http://www.sysinternals.com/ntw2k/source/misc.shtml

HEX2DEC V1.0

När jag arbetar med felsökningsprogram och demonterar jag ofta att jag måste konvertera hexadecimalt till decimal och vice versa. Jag blev äntligen trött på att öppna Calc, ange ett tal och sedan byta bas för att se konverteringen och så skrev jag ett litet kommandoradskonverteringsverktyg. Hex2dec konverterar i båda riktningarna och identifierar enkelt indata som hexadecimalt om det har prefixet "0x" eller "x" eller innehåller bokstäverna "a"-'f" (dess skiftläge okänsligt).

Ladda ned Hex2dec på
http://www.sysinternals.com/ntw2k/source/misc.shtml

TCPVCON V2.34

Netstat är ett kommandoradsverktyg inbyggt i Windows NT och högre som visar de aktiva TCP- och UDP-slutpunkterna i systemet. Den version som Microsoft introducerade med Windows XP innehåller en användbar information: processidentifieraren (PID) för processen som öppnade varje slutpunkt. Men för att fastställa namnet på processen eller annan information om den måste du öppna ett processlistningsverktyg och hitta processen med den PID:en.

TCPView är ett Sysinternals GUI-program som visar samma aktiva slutpunktsinformation, men mycket bekvämare än Netstat, eftersom det innehåller namnet på processen, snabbt växlar mellan DNS-namn och råa IP-adresser och markerar med färger nya och borttagna slutpunkter. TCPViews nedladdning innehåller nu TCPVCon, en konsolversion av TCPView, för dig som gillar att använda kommandoradsgränssnitt. Till skillnad från Netstat visar TCPVCon den fullständiga sökvägen för processen som är associerad med varje slutpunkt och innehåller en växel som dumpar utdata i CSV-format.

Ladda ned Tcpvcon på
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

PSTOOLS-UPPDATERINGAR

PsKill och PsLoglist är de två PsTools som har fått förbättringar under de senaste månaderna. PsKill, ett kommandoradsverktyg som avslutar processer på det lokala eller ett fjärrsystem, stöder nu en -t växel så att du kan avsluta ett helt träd med processer. Ett antal personer bad om det här alternativet för att göra det enkelt att rensa upp skenande träd i batchskript.

PsLoglist är ett kommandoradsverktyg som dumpar händelseloggar på lokala system eller fjärrsystem. De senaste uppdateringarna har lagt till 5 alternativ i den redan långa listan över kommandoradskvalificerare. Med de nya argumenten kan du exkludera angivna händelsetyper eller händelsekällor från utdata eller bara dumpa händelser från de senaste minuterna eller timmarna. Det stöder nu också ett övervakningsläge för händelseloggar där det körs tills du avslutar det och skriver ut händelseloggposter när de genererar.

Ladda ned PsTools, inklusive PsKill och PsLoglist, på
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

SYSINTERNALS AT WWW.MICROSOFT.COM

Här är den senaste delen av Sysinternals-referenser i Microsoft Knowledge Base-artiklar (KB) som släppts sedan det senaste nyhetsbrevet. Detta ger 63 det totala antalet offentliga KB-referenser till Sysinternals.

  • KORRIGERING: Windows mediespelare 9-serien för Windows använder ofta registret och kan påverka prestandahttp://support.microsoft.com/?kbid=886423

  • Översikt över GDI+ 1.0-säkerhetsuppdatering http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/gdiplus10security.asp

  • Registerredigering http://support.microsoft.com/default.aspx?scid=kb; en-gb; 835818

  • Felmeddelandet "Det finns ingen information att visa i den här vyn" visas när du försöker komma åt en Projektvy http://support.microsoft.com/default.aspx?scid=kb. en-us; 810596

INTERN INFORMATION

INTERNETBLÄDDRING

För ungefär ett år sedan meddelade jag att jag hade bytt från IE till Mozilla eftersom IE saknade de funktioner som anses obligatoriska för en anständig webbläsare, som popup-blockering, flikar, automatisk formulärfyllning och annonsfiltrering. Inte långt därefter någon pekade mig på Avant Browser, en liten nedladdning som använder IE (det är inte sin egen webbläsare) för att ge det allt det och mer. Mozillas klumpiga användargränssnitt och brist på kompatibilitet med vissa webbplatser gjorde jag ofta beslutet att byta lätt. Även om den nya FireFox-versionen är bättre i båda avseendena, finns det fortfarande några inkompatibla webbplatser (som Windows Update, till exempel) och så har jag inte varit tvungen att byta igen.

Microsofts långsamma framsteg som förbättrar IE, även mot bakgrund av IE: s blygsamma Windows XP SP2-förbättringar, bör skämma ut dem till att köpa Avant Browser och bygga in det i nästa version av IE.

Ladda ned Avant Browser på: http://www.avantbrowser.com

ANVÄNDA LIVEKD FÖR ATT FELSÖKA SJUKA SYSTEM

LiveKd är ett verktyg som jag skrev för den tredje utgåvan av Inside Windows 2000 (det är nu ett freeware-verktyg på Sysinternals). Du kan använda Windbg eller Kd för Microsoft Debugging Tools for Windows-paketet för att köra felsökningskommandon som normalt används för att undersöka kraschdumpar och frysta system på ett system som är online och aktivt. Microsoft introducerade en liknande funktion, som kallas "lokal kernel-felsökning", för felsökningsverktygen när de körs i Windows XP och senare. Det finns dock flera saker du kan göra med LiveKd som du inte kan göra med lokal kernel-felsökning. Du kan till exempel inte titta på trådstackar i kernelläge med lokal kernel-felsökning och kommandot list-kernel-moduler, , lm kvisar bara operativsystemets kernel och inte de andra belastningsdrivrutinerna när de körs i lokal kernel-felsökning. Båda kommandona fungerar i LiveKd.

Ett annat kommando som inte fungerar i lokal kernel-felsökning, men som gör det i LiveKd, är .dump. Jag har lärt mig av en PSS-tekniker (Microsoft Product Support Services) att .dump kommandot kan vara användbart för att felsöka ett sjuksystem. En dator som har problem, men som levererar tjänster som webb eller databas, kanske inte är en kandidat för omstart eller traditionell felsökning där systemet pausas under undersökningen. Att köra LiveKd och köra .dump resulterar i en kraschdumpformaterad fil som innehåller innehållet i systemets fysiska minne. Du kan ta dumpfilen till en annan dator och analysera operativsystemets och tjänstprogrammens tillstånd genom att läsa in dumpfilen i WinDbg eller Kd, vilket undviker ett avbrott när du undersöker orsaken till ett problem.

Ladda ned LiveKd på
http://www.sysinternals.com/ntw2k/freeware/livekd.shtml

CREEKSIDE?

Jag undersökte nyligen initieringen av Windows XP Service Pack 2-versionen av Winlogon, systemprocessen som ansvarar för att presentera användargränssnittet för inloggning, när jag stötte på kod i demonteringen där Winlogon söker efter förekomsten av en DLL med namnet ediskeer.dll i \Windows\System32 katalogen, säkerställer att dess digitalt signerade av en betrodd undertecknare om den finns, och läser sedan in den och anropar en namnlös funktion som exporteras av DLL:en. Winlogon-koden som körs när någon loggar in på systemet anropar också DLL:en om den lästes in under initieringen.

Jag letade efter DLL på mitt system och hittade det inte, och det är inte heller närvarande på Service Pack 2 CD. Så vad är DLL? Med hjälp av felsökningssymbolerna som Microsoft skickar för operativsystemet kunde jag se Winlogon konfigurera en variabel med namnet "Creekside" om ediskeer.dll finns och signeras och sedan insåg jag att "ediskeer" består av de sista 8 bokstäverna i "creekside" i omvänd ordning. Jag är fortfarande inte säker på vad Creekside hänvisar till, men jag misstänker starkt att DLL är en som endast levereras med Windows XP Starter Edition, den billiga versionen av Windows XP som Microsoft nyligen introducerade för utvecklingsländer. Starter Edition baseras på samma operativsystemkärna som Windows XP Professional och Home Editions, men det begränsar antalet program som en användare kan ha samtidigt. Om jag har rätt läser Winlogon in DLL:n för att framtvinga den gränsen och aktiverar den varje gång en ny användare loggar in.

CHKREG REGISTRY FIXER

Under åren Bryce och jag har fått många förfrågningar om en Registry-analogi för Chkdsk, filsystemet konsekvenskontroll verktyget. Vi har aldrig skrivit en eftersom vi har känt att publiken för en är för liten för att motivera ansträngningen. För ungefär ett år sedan släppte Microsoft den föga kända Chkreg, en Chkdsk för registret som åtgärdar många typer av registerskada.

Chkreg stöds tyvärr bara i Windows 2000 (det kan också fungera på Windows NT 4- och Windows XP-register) och implementeras som ett "internt" program som använder det interna API:et i stället för Windows-API:et och så att det inte körs under Windows. När du laddar ned den måste du installera den på en uppsättning med sex Startdisketter för Windows-installation, en omständlig och tidskrävande affär. Vi har kontaktat utvecklarna av Chkreg och uppmuntrat dem att offentligt släppa Den Windows-version som vi har lärt oss att Microsoft Product Support Services (PSS) använder internt, men inte har något ord om när eller om de kommer att släppa den.

Du kan ladda ned Chkreg på
http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C& displaylang=en

WINDOWS MINNESDIAGNOSTIK

En av de mest frustrerande upplevelserna för en Windows-användare är ett kraschande system. I de flesta fall är felet en buggig enhetsdrivrutin från tredje part, som du kan åtgärda genom att inaktivera drivrutinen eller uppdatera till en version med en korrigering. Cirka 10 % av krascherna som rapporteras till Microsoft Online Crash Analysis (OCA) orsakas av maskinvaruproblem, varav de flesta är disk- och minnesrelaterade.

Om du får krascher som OCA inte kan diagnostisera eller om du misstänker ett minnesproblem bör du tillbringa några minuter med Microsoft Windows Memory Diagnostic (WMD), ett minneskontrollverktyg som Microsoft nyligen släppte. Installationsprogrammet för WMD ber om en diskett eller CD som det sparar WMD-programmet till. När du startar en dator från disketten eller CD-skivan kör du WMD-körningar och utför ett grundligt test av datorns minne, rapporterar dess förlopp och eventuella problem till skärmen. Om du har minnesfel WMD kan spara dig frustration oändliga Windows kraschar.

Du kan ladda ned Windows-minnesdiagnostik på http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C& displaylang=en

UNDERSÖKA ODOKUMENTERADE GRÄNSSNITT

Funktionen DEP-status som jag beskriver i avsnittet om förbättringar av Process Explorer tidigare i nyhetsbrevet förlitar sig på en odokumenterad funktion. Jag trodde att många av er skulle vara intresserade av att lära sig hur jag upptäckte, utan tillgång till Windows källkod (Dave Solomon, min medförfattare för Windows Internals, har åtkomst, men jag inte), funktionen och dess rätt användning.

Det första steget i min analysprocess var att anta att en DEP-statusfråga för en process skulle dirigeras via API:et NtQueryInformationProcess . Många Windows API-funktioner som hämtar information om en process använder NtQueryInformationProcess gränssnittet för att hämta informationen. Den här funktionen, som är prototyp i filen Ntddk.h i Windows Driver Development Kit (DDK), är tillgänglig från användarläge via systemanropsgränssnittet för "internt API":

NTSYSAPI
NTSTATUS
NTAPI
NtQueryInformationProcess(
    IN HANDLE ProcessHandle,
    IN PROCESSINFOCLASS ProcessInformationClass,
    OUT PVOID ProcessInformation,
    IN ULONG ProcessInformationLength,
    OUT PULONG ReturnLength OPTIONAL
);

De två första argumenten är en referens till en process och en "processinformationsklass". PROCESSINFOCLASS-uppräkningen, vars första definitioner visas nedan, ingår också i NTDDK. H:

typedef enum _PROCESSINFOCLASS {
    ProcessBasicInformation,
    ProcessQuotaLimits,
    ProcessIoCounters,
    ProcessVmCounters,
    ProcessTimes,
//...

Eftersom DEP introducerades i Windows XP SP2 förväntade jag mig inte att informationsklassen för DEP-frågor skulle visas i Windows XP- eller Windows Server 2003-versionerna av Ntddk.h, och en snabbkontroll bekräftade dess frånvaro. Jag var därför tvungen att undersöka en demontering av SP 2: s Ntoskrnl.exe, bilden där NtQueryInformationProcess implementeras, för att se om jag kunde fastställa DEP-frågeinformationsklassen empiriskt.

En demontering tar en körbar avbildning och visar de instruktioner för sammansättningsspråk som utgör dess kod. Instruktioner för sammansättningsspråk mappas direkt till instruktionerna som körs av en processor. Den demontering som jag använder är IDA Pro från http://www.datarescue.com eftersom den förstår Microsofts felsökningsinformationsfiler och integrerar informationen i sammansättningsspråkets utdata. I demonteringen upptäckte jag den invecklade sekvensen med instruktioner i början av NtQueryInformationProcess som tar parametern processinformationsklass och kör kod som är specifik för varje klass. Eftersom jag visste att informationsklassen PROCESSINFOCLASS var ny kunde jag hoppa över körningen av de klasser som jag såg definitioner för i Ntddks uppräkning. Detta begränsade min undersökning till ungefär 3 eller 4 nya klasser som införts sedan Windows XP release.

En av klasserna, den som motsvarar värdet ProcessInformationClass 0x22, tog mig genom en kodsökväg till en funktion med namnet MmGetExecuteOptions, vars start visas här:

PAGE:0054D7CC ; __stdcall MmGetExecuteOptions(x)
PAGE:0054D7CC _MmGetExecuteOptions@4 proc near ; CODE XREF:
NtQueryInformationPro0063ess(x,x,x,x,x)+251C p
PAGE:0054D7CC
PAGE:0054D7CC arg_4 = dword ptr 8
PAGE:0054D7CC
PAGE:0054D7CC mov edi, edi
PAGE:0054D7CE push ebp
PAGE:0054D7CF mov ebp, esp
PAGE:0054D7D1 mov eax, large fs:124h
PAGE:0054D7D7 mov eax, [eax+44h]
PAGE:0054D7DA mov cl, [eax+6Bh]
PAGE:0054D7DD mov eax, [ebp+arg_4]
PAGE:0054D7E0 and dword ptr [eax], 0
PAGE:0054D7E3 xor edx, edx
PAGE:0054D7E5 inc edx
PAGE:0054D7E6 test dl, cl
PAGE:0054D7E8 jz short loc_54D7EC
PAGE:0054D7EA mov [eax], edx
PAGE:0054D7EC
PAGE:0054D7EC loc_54D7EC: ; CODE XREF:
MmGetExecuteOptions(x)+1C j
PAGE:0054D7EC test cl, 2
PAGE:0054D7EF jz short loc_54D7F4
PAGE:0054D7F1 or dword ptr [eax], 2
PAGE:0054D7F4
PAGE:0054D7F4 loc_54D7F4: ; CODE XREF:
MmGetExecuteOptions(x)+23 j
PAGE:0054D7F4 test cl, 4
PAGE:0054D7F7 jz short loc_54D7FC
PAGE:0054D7F9 or dword ptr [eax], 4
PAGE:0054D7FC

IDA Pro visade mig på den första raden i ovanstående utdata att funktionen accepterar ett argument, vilket jag misstänkte vara en pekare till en variabel som tar emot DEP-inställningarna. Jag har ägnat tillräckligt med tid åt att titta igenom demonteringar av Windows-kerneln för att identifiera instruktionssekvensen mov eax, large fs:124h; mov eax,[eax+44h] som en läsning av den aktuella tråddatastrukturen _KTHREAD i strukturen för processorkontrollområdet (PCR) följt av en referens till KPROCESS fältet vid förskjutning 0x44 i _KTHREAD strukturen. Anvisningarna som följer dessa läser enskilda bitar i byte vid förskjutning 0x6B i _KPROCESS strukturen.

Att inte veta vad som finns på offset 0x6B i en _KPROCESS jag lanserade Windbg i lokalt kernel felsökningsläge och körde kommandot dt _kprocess, som rapporterade detta:

+0x06b Flags : _KEXECUTE_OPTIONS

Looking at that structure with another dt command showed the bit definitions:

+0x000 ExecuteDisable : Pos 0, 1 Bit
+0x000 ExecuteEnable : Pos 1, 1 Bit
+0x000 DisableThunkEmulation : Pos 2, 1 Bit
+0x000 Permanent : Pos 3, 1 Bit
+0x000 ExecuteDispatchEnable : Pos 4, 1 Bit
+0x000 ImageDispatchEnable : Pos 5, 1 Bit
+0x000 Spare : Pos 6, 2 Bits

Visst, dessa bitar relaterar till DEP och det verkar som MmGetExecuteOptions kopierar dem från den strukturen till motsvarande bitar på minnesplatsen som skickas som ProcessInformation argumentet till NtQueryInformationProcess. Jag hade därför fastställt att jag kunde fråga DEP-statusen för en process genom att anropa NtQueryInformationProcess med en ProcessInformationClass av 0x22, adressen för ett DWORD (4-bytes heltal) och en längd på 4. Det verkar som MmGetExecuteOptions returnerar flaggorna endast för den aktuella processen och ignorerar parametern ProcessHandle (Process Explorer frågar DEP-statusen för andra processer genom att låta hjälpdrivrutinen växla till dem via API:et KeAttachProcess ).

Jag var klar förutom ett par subtila skillnader på 64-bitarsversionen av Windows, eftersom jag gör en 64-bitars version av Process Explorer tillgänglig. I 64-bitars Windows MmGetExecuteOptions måste det ProcessHandle vara -1 och returnerar ett STATUS_INVALID_PARAMETER fel om den aktuella processen är en 64-bitarsprocess, eftersom DEP alltid är aktiverat för 64-bitarsprocesser. Jag använde Windbg för att demontera 64-bitarsversionen av Ntoskrnl.exe, men sedan dess har fått den version av IDA Pro som stöder AMD64-avbildningen isär.

INTERN UTBILDNING

WINDOWS-ANSLUTNINGAR I SAN FRANCISCO

Jag håller två sessioner på Windows Anslut ions-konferensen, som drivs av Windows IT Pro Magazine och äger rum 17-20 april i San Francisco. Den ena är en allmän session som heter "Understanding and Fighting Malware: Virus, Spionprogram och Rootkits" där jag beskriver hur skadlig kod utnyttjar sårbarheter för att sprida och kringgå säkerhetsåtgärder, hur de döljer sig med hjälp av sofistikerade tekniker som kallas "rootkits" och hur man identifierar dem och rensar dem från ditt system.

Den andra sessionen är "Felsöka Minnesproblem i Windows" där jag visar hur du svarar på den gamla "vad är innebörden av de värden jag ser i Aktivitetshanteraren", "vad använder mitt minne" och "hur stor ska jag göra växlingsfilen" frågor.

Ladda ned konferensbroschyren och registrera dig på
http://www.devconnections.com/shows/win/default.asp?s=60#

PRAKTISKA WINDOWS INTERNALS/SYSINTERNALS-KLASSER AV MARK RUSSINOVICH

Tillbringa 5 dagar med Mark Russinovich och David Solomon, författare till den nya boken Windows Internals 4th Edition, lära sig avancerade felsökningstekniker samtidigt som de gräver i det interna i Windows NT/2000/XP/2003 operativsystem kernel. Om du är IT-proffs på att distribuera och stödja Windows-servrar och -arbetsstationer måste du kunna gräva under ytan när saker går fel. Att förstå det interna i Windows-operativsystemet och veta hur du använder avancerade felsökningsverktyg hjälper dig att hantera sådana problem och förstå problem med systemprestanda mer effektivt. Att förstå de interna funktionerna kan hjälpa programmerare att bättre dra nytta av Windows-plattformen och tillhandahålla avancerade felsökningstekniker. Och eftersom kursen utvecklades med fullständig åtkomst till Windows kernel källkod OCH utvecklare, vet du att du får den verkliga historien.

Kommande datum är:

  • 6-10 JUNI, ORLANDO, FLORIDA
  • 11-15 JULI, MÜNCHEN, TYSKLAND
  • 19-23 SEPTEMBER, SAN FRANCISCO, KALIFORNIEN
  • 5-9 DECEMBER, AUSTIN, TEXAS

Obs! Det här är en praktisk klass – varje deltagare måste ta med sin egen bärbara dator (konfigurationsinstruktioner skickas i förväg).

Du får en djupgående förståelse för kernelarkitekturen i Windows NT/2000/XP/2003, inklusive interna processer, trådschemaläggning, minneshantering, I/O, tjänster, säkerhet, registret och startprocessen. Dessutom beskrivs avancerade felsökningstekniker, till exempel desinfektion av skadlig kod, kraschdumpanalys (blå skärm) och att komma förbi startproblem. Du får också lära dig avancerade tips om hur du använder viktiga verktyg från www.sysinternals.com (till exempel Filemon, Regmon och Process Explorer) för att felsöka en rad system- och programproblem, till exempel långsamma datorer, virusidentifiering, DLL-konflikter, behörighetsproblem och registerproblem. Dessa verktyg används dagligen av Microsoft Product Support och har använts effektivt för att lösa en mängd olika skrivbords- och serverproblem, så att känna till deras drift och program hjälper dig att hantera olika problem i Windows. Verkliga exempel kommer att ges som visar framgångsrik tillämpning av dessa verktyg för att lösa verkliga problem.

Om du vill registrera dig går du till http://www.sysinternals.com/troubleshoot.shtml


Tack för att du läser Sysinternals nyhetsbrev.

Publicerad onsdag 05 januari 2005 16:36 av ottoh

[Nyhetsbrev arkiv ^][< Volym 6, nummer 2][Volym 7, specialmeddelande >]