[Newsletter-Archiv ^] [< Band 6, Nummer 2] [Band 7, Besondere Ankündigung >]
Systems Internals-Newsletter Band 7, Nummer 1
http://www.sysinternals.com
Copyright (C) 2005 Mark Russinovich
5. Januar 2005 – In dieser Ausgabe:
LEITARTIKEL
- Haben Sie DEP?
WINDOWS INTERNALS, 4. AUFLAGE
NEUIGKEITEN BEI SYSINTERNALS
- Statistiken vom November
- Artikel im Sysinternals-Magazin
- Sysinternals-RSS-Feed
- Mark ist ein Microsoft MVP.
- Autoruns v6.01
- Prozess-Explorer v8.61
- Sigcheck v1.0
- Bginfo v4.07
- Regjump v1.0
- Hex2dec v1.0
- Tcpvcon v2.34
- PsTools-Updates
- Sysinternals bei Microsoft
INTERNALS-INFORMATIONEN
- Browsen im Internet
- Verwenden von LiveKd zur Problembehandlung für fehlerhafte Systeme
- CreekSide?
- ChkReg-Registrierungskorrektur
- Windows-Speicherdiagnose
- Untersuchen nicht dokumentierter Schnittstellen
INTERNALS-SCHULUNG
- Windows Connections in San Francisco
- Praktische Windows Internals-/Sysinternals-Kurse von Mark Russinovich und David Solomon
Der Sysinternals-Newsletter wird von Winternals Software gesponsert (im Web unter http://www.winternals.com). Winternals Software ist der führende Entwickler und Anbieter von erweiterten Systemtools für Windows NT/2000/XP/2003.
Winternals freut sich, das bevorstehende Release von Administrator‘s Pak 5.0 mit einem umfassenden Update einschließlich ERD Commander 2005 bekannt geben zu können.
ERD Commander 2005 bietet folgende neue Features:
- Absturzanalyse: Schnelle und einfache Diagnose des Treibers, der für einen Windows-Absturz verantwortlich ist – auch wenn das System nicht gestartet werden kann
- DiskWipe: Sicheres Löschen von Festplatten oder Volumes; Autoruns: Ermitteln der Anwendungen, die beim Ausführen von Windows Setup und der Benutzeranmeldung gestartet werden – ein nützliches Feature, um Probleme mit Systemressourcen zu diagnostizieren und potenzielle Schadsoftware zu finden
- FireFox-Webbrowser: Herunterladen von Hotfixes, Treiberupdates, Suchen nach Hilfe in der Microsoft Knowledge Base – all dies auf dem System, das Sie reparieren möchten
- Hotfix-Deinstallations-Assistent: Entfernen von Hotfixes und Service Packs auf einem nicht startbaren System
- Systemdateireparatur: Überprüfen der Integrität von Windows-Systemdateien
Diese Features und zahlreiche weitere Verbesserungen, u. a. an der Benutzerfreundlichkeit von ERD Commander 2005, sowie ein neuer Remote Recover-Client auf Basis von Windows PE, der einfacher zu erstellen und zu verwenden ist, sind in der neuen Version Administrator‘s Pak 5.0 enthalten, die ab Ende Januar 2005 verfügbar ist. Um sich bei der Veröffentlichung von Administrator‘s Pak 5.0 für eine Evaluierung zu registrieren, besuchen Sie http://www.winternals.com/ap5preview/..
LEITARTIKEL
Guten Tag,
Willkommen beim Sysinternals-Newsletter. Der Newsletter hat aktuell 40.000 Abonnenten.
Die rasante Zunahme von Schadsoftware, darunter Spyware und Viren, hat dazu geführt, dass heute alle um die Sicherheit besorgt sind. Gute Sicherheitsmaßnahmen umfassen die Anwendung von Betriebssystem- und Anwendungspatches, das Installieren und Konfigurieren von Firewall- und Antivirentools sowie Tools zum Entfernen von Spyware und ein gesundes Urteilsvermögen beim Herunterladen von Inhalten aus dem Internet oder Öffnen von E-Mail-Anlagen. Doch trotz gründlicher Maßnahmen kann Schadsoftware immer noch Wege finden, um die Verteidigungs- bzw. Schutzmaßnahmen zu unterwandern und einen Computer zu infizieren. Die häufigste Lücke im Schutz eines Systems ist das Sicherheitsrisiko eines Pufferüberlaufs, und aus diesem Grund sollten Sie mit dem Feature „Datenausführungsverhinderung“ (Data Execution Prevention, DEP) von Windows XP Service Pack 2 vertraut sein.
Ein Pufferüberlauf ist ein Programmierfehler, den Schadsoftware ausnutzen kann, um die Kontrolle über den Thread zu übernehmen, der den Codierungsfehler ausführt. Pufferüberläufe sind in der Regel stapelbasiert. Dies bedeutet, dass Angreifer*innen mehr Daten an das Programm übergeben, als in einen auf dem Stapel gespeicherten Puffer passen. Die Daten sind so gestaltet, dass die Funktion mit dem Überlauf bei dem Versuch, zur aufrufenden Funktion zurückzukehren, stattdessen zu einem Speicherort in den Daten wechselt.
Leider können Pufferüberlauffehler selbst die am besten getestete und geprüfte Software heimsuchen. Für Windows und die Komponentensoftware werden jeden Monat mehrere Pufferüberläufe gemeldet (Linux und die zugehörigen Anwendungen sind nicht immun – es gibt eine Reihe von Pufferüberläufen, die mit denen bei Windows vergleichbar sind). Der rote Faden bei den meisten Pufferüberlauf-Exploits ist, dass sie zur Ausführung von Code führen, der in Speicherbereichen platziert wird, die nur Daten enthalten sollten.
Obwohl der Intel Itanium-Prozessor seit seiner Veröffentlichung „No-Execute“-Schutz (keine Ausführung) unterstützt hat, wurde diese Hardwareunterstützung in Windows erst seit Windows XP SP2 (und dem demnächst verfügbaren Windows Server 2003 SP1) genutzt, indem z. B. Threadstapel und Heapspeicher als „nicht ausführbar“ markiert werden. Andere Prozessoren, die No-Execute-Hardwareschutz unterstützen, sind der 64-Bit-AMD64 Opteron und Athlon 64 sowie der als EM64T bezeichnete Klon von Intel, der jetzt auf Xeon- und Pentium 4-Prozessoren verfügbar ist. AMD und Intel haben kürzlich 32-Bit-Prozessoren ohne No-Execute-Unterstützung eingeführt: AMD Sempron und die Pentium 4 „J“-Familie (z. B. 520J, 540J usw.).
Es mag für Sie offensichtlich erscheinen, dass Windows für Stapel und Anwendungsheapspeicher standardmäßig No-Execute-Schutz erzwingen sollte, um Pufferüberlauf-Exploits zu verhindern. Es gibt jedoch Hunderttausende vorhandener Anwendungen, von denen einige nur dann ordnungsgemäß funktionieren, wenn die Einstellung nicht erzwungen wird. Daher gibt Windows XP SP2 (das erste Release von Windows, das den No-Execute-Schutz erzwingt) Administrator*innen die Kontrolle darüber, welche Prozesse geschützt werden und welche nicht. Erstens erzwingt die 64-Bit-Version von Windows zur zukünftigen Verbesserung der Sicherheit immer No-Execute-Flags für alle 64-Bit-Prozesse. Wenn Softwarehersteller*innen eine 64-Bit-Anwendung freigeben möchten, müssen sie sicherstellen, dass sie keinen Code aus nicht ausführbaren Speicherbereichen ausführen (sie können einen Datenbereich als ausführbaren Bereich markieren, wenn sie Code dynamisch generieren, was bei Java- und .NET-Anwendungen häufig der Fall ist).
Zweitens schützen 32-Bit-Windows XP und Windows Server 2003 standardmäßig Kernbetriebssystemimages, da Pufferüberlauf-Exploits meist auf Betriebssystemkomponenten abzielen. Für 32-Bit-Anwendungen (die unter 32-Bit-Windows oder 64-Bit-Windows ausgeführt werden) verwendet Windows XP standardmäßig eine „Opt-In“-Strategie (d. h. Anwendungen sind nicht standardmäßig geschützt und müssen für den Schutz ausgewählt werden), während unter Windows Server 2003 standardmäßig eine „Opt-Out“-Strategie gilt (Anwendungen sind standardmäßig geschützt, bestimmte Anwendungen können jedoch durch Abwählen ausgeschlossen werden). Dies ist sinnvoll, da die Sicherheit auf Serversystemen in der Regel eine höhere Priorität hat. Sie können die Opt-In- oder Opt-Out-Einstellungen im Dialogfeld für die DEP-Konfiguration ändern, auf das Sie über die Schaltfläche „Einstellungen“ im Abschnitt „Leistung“ der Seite „Erweitert“ des Systemsteuerungs-Applets „System“ zugreifen.
Wie bereits erwähnt, verfügen mit Ausnahme der relativ neuen AMD Sempron- und Pentium 4 „J“-Prozessoren, alle bisher veröffentlichten x86-kompatiblen Chips nicht über No-Execute-Unterstützung. Windows XP und Windows Server 2003 implementieren jedoch eine eingeschränkte Form von DEP auf diesen Prozessoren, die als „Software-DEP“ bezeichnet wird. Da das Betriebssystem die Kontrolle über einen Thread erhält, wenn der Thread einen Fehler generiert, kann es sicherstellen, dass es sich beim ausgeführten Handler um einen Handler handelt, der vom Programmcode statisch registriert wurde. Dadurch wird ein Exploit verhindert, der den Fehlerhandler eines Threads umleitet, um schädlichen Code in einem Stapelpuffer mit Überlauf auszuführen, wozu Internetinformationsdienste (Internet Information Services, IIS) bei der Veröffentlichung im Jahr 2001 vom CodeRed-Virus veranlasst wurde.
Trotz seiner relativen Einfachheit ist DEP einer der stärksten Schutzmechanismen, die das Betriebssystem zur Abwehr von sich selbst verbreitender Schadsoftware bietet. Leider schränken drei Dinge die Leistungsfähigkeit dieses Features ein: fehlende Hardwareunterstützung für die No-Execute-Einstellung in den meisten der derzeit bereitgestellten Prozessoren, die Opt-In-Standardeinstellung in Windows XP, sodass nur Kernbetriebssystemprozesse geschützt sind, und mangelndes Bewusstsein seitens der Benutzer*innen. Da der Anwendungsbereich von Software-DEP begrenzt ist, ist DEP kaum wirksam, es sei denn, Sie führen Windows auf Hardware mit No-Execute-Unterstützung aus. Die Tatsache, dass „Opt-In“ in Windows XP die Standardeinstellung ist, bedeutet, dass selbst wenn Benutzer*innen Windows auf Hardware mit No-Execute-Unterstützung ausführen, nur Betriebssystemprozesse DEP-Schutz erhalten. Wenn ein Pufferüberlauf in der Firewall, im Webbrowser, in E-Mail-Readern oder einer anderen netzwerkfähigen Anwendung von Drittanbieter*innen auftritt, besteht weiterhin ein Sicherheitsrisiko. Tatsächlich sind einige der Anwendungen, die am häufigsten von Schadsoftware ausgenutzt werden – IIS und Outlook – nicht durch die Opt-In-Einstellung geschützt. Da die meisten Benutzer*innen weder das Standardverhalten kennen noch mit DEP vertraut sind, sind die meisten Systeme weiterhin anfällig für Pufferüberlaufprobleme.
Es ist an der Zeit, dass Microsoft Benutzer*innen den Preis der Kompatibilität im Austausch gegen eine höhere Sicherheit bezahlen lässt. Andernfalls werden Benutzer*innen in Folge der Auswirkungen von Viren letztlich einen deutlich höheren Preis zahlen – und dafür werden sie wiederum Microsoft die Rechnung präsentieren. In der Zwischenzeit empfehle ich Ihnen dringend, ein Upgrade auf Windows XP SP2 durchzuführen (Windows XP 64-Bit-Edition und Windows Server 2003 SP1 bieten ebenfalls No-Execute-Unterstützung), zur Opt-In-Strategie zu wechseln und auf einen Prozessor mit No-Execute-Unterstützung zu aktualisieren (leider erhalte ich keine Provision).
Bitte leiten Sie den Newsletter an alle Personen weiter, für die diese Informationen von Interesse sein könnten.
Vielen Dank!
– Mark
WINDOWS INTERNALS, 4. AUFLAGE
Das offizielle Microsoft-Buch zu den Internals von Windows Server 2003, Windows 2000 und Windows XP, das ich zusammen mit Dave Solomon geschrieben habe, ist jetzt im Buchhandel erhältlich. Dave und ich haben den Umfang der vorherigen Auflage um etwa 25 % erweitert und nicht nur neues Material zu Änderungen bei Windows Server 2003 und XP hinzugefügt, sondern auch neue Informationen zu Problembehandlungstools und -techniken. Im Buch finden Sie weiterführende Tipps zur Verwendung von Prozess-Explorer, Filemon und Regmon sowie ein ganz neues Kapitel zur Windows-Absturzabbildanalyse.
Erfahren Sie mehr über den Inhalt des Buchs, und bestellen Sie es online unter folgender Adresse:
http://www.sysinternals.com/windowsinternals.shtml
NEUIGKEITEN BEI SYSINTERNALS
SYSINTERNALS-RSS-FEED
Ich wurde so oft gebeten, Sysinternals einen Benachrichtigungsmechanismus für neue Beiträge hinzuzufügen, dass ich schließlich dem Trend im Web gefolgt bin und einen RSS-Feed hinzugefügt habe (falls Sie nicht mit RSS-Feeds vertraut sind, finden Sie hier eine Einführung: http://rss.softwaregarden.com/aboutrss.html). Der Feed gibt mir auch die Möglichkeit, Sie über kleinere Fehlerbehebungen und Updates zu informieren, die keinen vollständigen Eintrag auf der Startseite rechtfertigen. Dies scheint bereits die bevorzugte Methode von Benutzer*innen zu sein, um sich basierend auf der Anzahl von Treffern, die der Feed pro Tag erhält, über Updates zu informieren.
Unter der folgenden Adresse können Sie auf den Sysinternals-RSS-Feed zugreifen:
http://www.sysinternals.com/sysinternals.xml
ARTIKEL IM SYSINTERNALS-MAGAZIN
Vor etwa einem halben Jahr begann ich, eine halbmonatlich erscheinende Kolumne zu Sysinternals-Tools im Windows IT Pro-Magazin (ehemals Windows- und .NET-Magazin) zu schreiben. In jeder Kolumne wird ein anderes Tool beschrieben, mit Tipps zur erweiterten Verwendung und Informationen zur Funktionsweise des Tools.
Von den drei unten aufgeführten Kolumnen, die bisher veröffentlicht wurden, sind die ersten beiden online für Nicht-Abonnent*innen zugänglich, und die dritte wird in Kürze verfügbar sein:
Autoruns: http://www.win2000mag.com/Windows/Article/ArticleID/44089/44089.html
Pslist und Pskill: http://www.winnetmag.com/Windows/Article/ArticleID/43569/43569.html
PsExec: http://www.winnetmag.com/Windows/Issues/IssueID/714/Index.html
MARK IST EIN MICROSOFT MVP.
Ich wurde vom Platform SDK Microsoft Most Valuable Professional (MVP)-Leiter als MVP für 2005 benannt. Ich bin ihm und Microsoft dankbar für diese offizielle Anerkennung der Beiträge, die ich über Sysinternals für Microsoft-Kund*innen geleistet habe.
STATISTIKEN VOM NOVEMBER
Ich habe endlich ein geeignetes Webdatenverkehr-Analyseprogramm für Sysinternals bekommen und die Protokolldateien für den Monat November analysiert. Die Höhe der Zahlen verblüffte selbst mich. Hier sind einige Highlights:
- 3,6 Millionen Seitenansichten
- 775.000 Besucher*innen
- 1,2 Millionen Downloads von Hilfsprogrammen
- 200.000 Downloads von Prozess-Explorer, der Nr. 1 bei den Downloads
AUTORUNS V6.01
Autoruns hat sich in den letzten Monaten mit zwei Updates der Hauptversion stark weiterentwickelt. Das aktuelle Release von Autoruns zeigt neben den standardmäßigen Ausführungsschlüsseln und Startordnern auch Speicherorte für den automatischen Start, darunter Winlogon-Benachrichtigungs-DLLs, Explorer-Symbolleisten, Namespaceerweiterungen und Browserhilfsobjekte sowie DLLs für die automatische Initialisierung. Ein weiteres neues Feature, das Menüelement „Google“ (übernommen aus Prozess-Explorer), hilft Ihnen, unbekannte Images zu identifizieren, indem Sie einen Browser öffnen und eine Suche nach dem ausgewählten Imagenamen initiieren.
Ein weiteres neues Feature, die Überprüfung der Bildsignatur, hilft Ihnen, zwischen Schadsoftware und Systemkomponenten oder vertrauenswürdigen Anwendungen zu unterscheiden. Microsoft schließt im Allgemeinen Hashes von Betriebssystemdateien ein, die mit dem privaten Signaturschlüssel von Microsoft signiert sind. Windows-Kryptografiefunktionen entschlüsseln die signierten Hashes mit dem öffentlichen Signaturschlüssel von Microsoft, und Autoruns überprüft die Images auf Ihrem System, indem ihre Hashes mit den entschlüsselten Versionen verglichen und dem Unternehmensnamen des Images „(Überprüft)“ vorangestellt wird, wenn eine Übereinstimmung vorliegt. Wenn ein Image manipuliert, beschädigt, ersetzt oder von Herausgeber*innen signiert wurde, die Ihr System als nicht vertrauenswürdig einstuft, meldet Autoruns den Unternehmensnamen für das Image als „(Nicht überprüft)“.
Systemadministrator*innen möchten möglicherweise die automatisch gestarteten Images in anderen Konten als dem, unter dem Sie angemeldet sind, überprüfen. Daher enthält Autoruns jetzt ein Menü „Benutzer“ mit Auswahlmöglichkeiten für jedes Konto, für das ein Profil auf dem Computer gespeichert ist.
Außerdem gibt es jetzt ein Befehlszeilenäquivalent der grafischen Autoruns-Benutzeroberfläche namens „Autorunsc“, das Informationen zu Autoruns in der Konsole auflistet. Die Möglichkeit, die Ausgabe bei Verwendung in Kombination mit dem PsExec-Hilfsprogramm von Sysinternals als CSV-Datei zu formatieren, erleichtert es Ihnen, Inventare der konfigurierten automatisch gestarteten Images für Computer in Ihrem gesamten Netzwerk zu generieren.
Laden Sie Autoruns unter folgender Adresse herunter:
http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml
PROZESS-EXPLORER V8.61
Prozess-Explorer (ein Tool, das Task-Manager als Hilfsprogramm für die erweiterte Prozessverwaltung ersetzt) war das Tool, auf das ich mich am meisten konzentriert habe, weil ich so viel Feedback dazu erhalten habe. Seit dem letzten Newsletter wurden die Versionen 8.4 und 8.6 von Prozess-Explorer veröffentlicht. Diese beiden Releases enthalten eine Reihe neuer Features, darunter ein Menüelement „Google“, das eine Suche nach Informationen zu einem ausgewählten Prozess initiiert, eine Registerkarte „Zeichenfolgen“ im Dialogfeld mit den Prozesseigenschaften, die die ASCII- und Unicode-Zeichenfolgen in einer Prozessimagedatei auflistet, ein Menüeintrag „Zeichenfolgen“, der Zeichenfolgen in einer ausgewählten DLL-Imagedatei auflistet, und eine QuickInfo, die den Namen des Prozesses mit dem höchsten CPU-Verbrauch anzeigt, wenn Sie auf das Taskleistensymbol „Prozess-Explorer“ zeigen.
Viele Benutzer*innen haben Features angefordert, die sie beim Wechsel von Task-Manager vermisst haben, z. B. die Task-Manager-Registerkarte „Anwendungen“. Auf der Registerkarte „Anwendungen“ werden eine Liste mit Fenstern der obersten Ebene auf dem interaktiven Desktop sowie der Status des Threads angezeigt, der die einzelnen Fenster besitzt: „Wird ausgeführt“, wenn der Thread derzeit auf den Empfang einer Fenstermeldung wartet oder innerhalb der letzten fünf Sekunden eine Fenstermeldung verarbeitet hat, und andernfalls „Keine Rückmeldung“ (ironischerweise bedeutet „Wird ausgeführt“ im Allgemeinen, dass der Thread wartet, und „Keine Rückmeldung“, dass der Thread gestartet wurde und ausgeführt wird). Jetzt können Sie dieselben Informationen mit Prozess-Explorer abrufen, indem Sie der Prozessansicht die Spalten „Fenstertitel“ und „Fensterstatus“ hinzufügen.
Prozess-Explorer verfügte eine Zeit lang über Funktionen für .NET-Prozesse, darunter die Hervorhebung für .NET-Prozesse und eine Registerkarte „.NET-Leistung“ im Dialogfeld mit den Prozesseigenschaften von .NET-Prozessen. Ein .NET-Prozess ist ein Prozess, der geladen und bei der .NET-Runtime registriert wurde. Wenn ein Prozess zu einem späteren Zeitpunkt nach seinem Start registriert wird, erkennt Prozess-Explorer möglicherweise nicht, dass es sich um einen .NET-Prozess handelt. Die aktuelle Version überprüft Prozesse jedoch erneut auf ihren .NET-Status und ihre Auftragsobjektmitgliedschaft, wenn Sie die Anzeige manuell aktualisieren, indem Sie die Symbolleistenschaltfläche „Aktualisieren“ auswählen, F5 drücken oder das Menüelement „Aktualisieren“ auswählen.
In Situationen, in denen Sie nicht sicher sind, welcher Prozess ein Fenster besitzt, können Sie die neue Symbolleistenschaltfläche für die Fenstersuche verwenden, um den Prozess zu identifizieren. Ziehen Sie einfach die Symbolleistenschaltfläche, die wie eine Zielscheibe aussieht, von der Symbolleiste über das betreffende Fenster, und Prozess-Explorer wählt den besitzenden Prozess in der Prozessansicht aus.
Eine Ergänzung, die Sie sofort bemerken werden, ist das CPU-Minidiagramm, das nahe der Symbolleiste angezeigt wird. Dieses Diagramm zeigt den CPU-Auslastungsverlauf des Systems. Zudem wird wie bei der erweiterten Version, die angezeigt wird, wenn Sie zum Öffnen des Prozess-Explorer-Dialogfelds „Systeminformationen“ darauf klicken, eine QuickInfo mit dem Zeitstempel und dem Prozess mit dem höchsten CPU-Verbrauch für den Punkt im Diagramm angezeigt, über den Sie die Maus bewegen. Sie können das Diagramm an eine beliebige Stelle im Symbolleistenbereich verschieben, sogar auf die zugehörige Zeile, sodass es über die gesamte Breite des Prozess-Explorer-Fensters angezeigt wird.
Zwei sicherheitsbezogene Features sind die Signaturüberprüfung von Images und der Status des Datenausführungsschutzes (DEP). Wenn Sie die Option zur Imagesignierung aktivieren, überprüft Prozess-Explorer, ob ein Prozessimage von einem vertrauenswürdigen Signaturgeber digital signiert wurde, und stellt dem Unternehmensnamen wie Autoruns im Dialogfeld mit den Prozesseigenschaften das Präfix „Überprüft“ oder „Nicht überprüft“ voran. Die Option ist standardmäßig deaktiviert, weil die Überprüfung der Imagesignierung über Websites erfolgt und die Bestätigung der Gültigkeit von Signaturzertifikaten mehrere Sekunden in Anspruch nehmen kann.
Die Datenausführungsverhinderung (DEP), die ich in der Einführung zu diesem Newsletter beschrieben habe, ist ein Feature, das Sie unter Windows XP SP2 aktivieren sollten, um einen erweiterten Schutz vor Pufferüberlauf-Exploits zu sicherzustellen. Sie können den DEP-Status eines Prozesses überprüfen, indem Sie der Prozessansicht die Spalte „DEP-Status“ hinzufügen oder das Feld „DEP-Status“ auf der Imageseite des Dialogfelds mit den Prozesseigenschaften überprüfen.
Zudem listet Prozess-Explorer jetzt die in das System geladenen Treiber in der DLL-Ansicht des Systemprozesses auf. Dabei handelt es sich um den Prozess, der Kernel- und Gerätetreiber-Arbeitsthreads zugeordnet ist. Für jeden Treiber sind dieselben Informationen verfügbar wie für DLLs, die für andere Prozesse aufgeführt sind, einschließlich Version, Unternehmensname, vollständiger Pfad und Ladeadresse im Systemadressraum.
Sie können Prozess-Explorer unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
SIGCHECK V1.0
Viele der Sysinternals-Tools verwenden Features, die Benutzer*innen helfen, Schadsoftware zu identifizieren, und Sigcheck ist ein Befehlszeilenprogramm, das fast ausschließlich diesem Zweck dient. Es verwendet die gleiche Funktionalität zur Überprüfung der Imagesignatur, die auch in Autoruns und Prozess-Explorer enthalten ist, um Ihnen mitzuteilen, ob eine Datei von vertrauenswürdigen Herausgeber*innen digital signiert wurde oder nicht. Darüber hinaus werden Dateiversionsinformationen für die von Ihnen angegebenen Images gemeldet, einschließlich Produktname, Beschreibung, Unternehmensname und Version. Diese Informationen ähneln denen, die das in Windows XP und Windows Server 2003 enthaltene Filever-Tool meldet. Sigcheck gibt jedoch außerdem für nicht signierte Images den Zeitstempel des Zeitpunkts an, zu dem die Datei ursprünglich „verknüpft“ oder erstellt wurde, und für signierte Images den Zeitstempel der Imagesignierung. Schließlich werden die meisten signierten Hashes mit Schlüsseln signiert, die selbst signiert wurden – eine Sequenz, die eine sogenannte Zertifikatsignaturkette bildet. Sigcheck unterstützt eine Befehlszeilenoption, mit der die Signaturkette mit Informationen zu den einzelnen Signaturgebern in der Kette ausgegeben werden kann.
Ein möglicher sicherheitsrelevanter Verwendungszweck von Sigcheck besteht darin, nicht signierte EXE-, DLL- oder SYS-Images in einem der Verzeichnisse unter dem Stammverzeichnis Ihrer Windows-Installation (in der Regel „\Windows“) zu untersuchen. Sie können nicht signierte EXE-Images ganz einfach identifizieren, indem Sie Sigcheck mit dieser Befehlszeile ausführen, z. B.:
sigcheck -s -u c:\windows\*.exe
Alle Microsoft-Images sollten gültige Signaturen enthalten. Der obige Befehl wird jedoch leider aufzeigen, dass dies bei vielen Images nicht der Fall ist, was zu Dateien führt, die potenziell zum Verbergen von Schadsoftware missbraucht werden können.
Sie können Sigcheck unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/source/misc.shtml
BGINFO V4.07
Dieses kleinere Update für Bginfo (ein Tool, das die von Ihnen konfigurierten Informationen auf dem Desktop des Computers, auf dem Sie das Tool ausführen, übersichtlich anzeigt) bietet bessere Unterstützung für Bitmaps, die es an die von Ihnen angegebene Größe anpassen muss, Verbesserungen bei der CPU-Erkennung, Unterstützung für MySQL und verbesserte Kompatibilität mit der Anzeige mit mehreren Monitoren.
Sie können Bginfo unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml
REGJUMP V1.0
Wenn Sie jemals versucht haben, Explorer-Tastenkombinationen für bestimmte Registrierungsschlüssel zu erstellen oder einfach den Pfad eines Schlüssels einzugeben, und dabei Regedit mit dem Zielspeicherort geöffnet haben, werden Sie Regjump nützlich finden. Regjump ist ein Befehlszeilenprogramm, das die gleiche „Jump-to“-Technologie für die Registrierung verwendet, die wir in Regmon erstmals eingeführt haben. Übergeben Sie einen Registrierungspfad als Befehlszeilenargument an Regjump, und Regedit wird geöffnet und navigiert zum angegebenen Schlüssel oder Wert.
Sie können Regjump unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/source/misc.shtml
HEX2DEC V1.0
Bei der Arbeit mit Debuggern und der Disassemblierung muss ich oft Hexadezimal- in Dezimalwerte umrechnen und umgekehrt. Irgendwann war ich es leid, den Rechner zu öffnen, eine Zahl einzugeben und dann die Basis zu wechseln, um die Umrechnung anzuzeigen, und so schrieb ich ein winziges Befehlszeilenkonvertierungsprogramm. Hex2dec konvertiert in beide Richtungen und identifiziert Eingaben als Hexadezimalwerte, wenn sie das Präfix „0x“ oder „x“ oder die Buchstaben „a – f“ (bei Beachtung der Groß-/Kleinschreibung) aufweisen.
Sie können Hex2dec unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/source/misc.shtml
TCPVCON V2.34
Netstat ist ein in Windows NT und höher integriertes Befehlszeilenprogramm, das die derzeit aktiven TCP- und UDP-Endpunkte auf dem System anzeigt. Die Version, die Microsoft mit Windows XP eingeführt hat, enthält eine nützliche Information: die Prozess-ID (PID) des Prozesses, von dem die einzelnen Endpunkte geöffnet wurden. Um jedoch den Namen des Prozesses oder andere Informationen zum Prozess zu ermitteln, müssen Sie ein Prozessauflistungstool öffnen und nach dem Prozess mit dieser PID suchen.
TCPView ist eine Sysinternals-Anwendung mit grafischer Benutzeroberfläche, die dieselben Informationen von aktiven Endpunkten anzeigt, aber viel benutzerfreundlicher als Netstat ist, da sie den Namen des Prozesses enthält, schnell zwischen DNS-Namen und unformatierten IP-Adressen wechselt und neue und gelöschte Endpunkte farblich hervorhebt. Für diejenigen von Ihnen, die Befehlszeilenschnittstellen verwenden möchten, enthält der Download von TCPView jetzt TCPVCon, eine Konsolenversion von TCPView. TCPVCon zeigt anders als Netstat den vollständigen Pfad des zugeordneten Prozesses jedes Endpunkts an und enthält eine Option zum Sichern der Ausgabe im CSV-Format.
Sie können Tcpvcon unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/source/tcpview.shtml
PSTOOLS-UPDATES
PsKill und PsLoglist sind die beiden PsTools, die in den letzten Monaten verbessert wurden. PsKill, ein Befehlszeilenprogramm, das Prozesse auf dem lokalen System oder einem Remotesystem beendet, unterstützt jetzt eine Option -t
, mit der Sie eine ganze Struktur von Prozessen beenden können. Diese Option wurde von vielen Personen angefragt, um das Bereinigen der Endlosstrukturen von Batchskripts zu vereinfachen.
PsLoglist ist ein Befehlszeilentool, das Ereignisprotokolle auf lokalen Systemen oder Remotesystemen sichert. In den letzten Updates wurden fünf Optionen zur bereits langen Liste der Befehlszeilenqualifizierer hinzugefügt. Mit den neuen Argumenten können Sie bestimmte Ereignistypen oder Ereignisquellen von der Ausgabe ausschließen oder nur Ereignisse der letzten Minuten oder Stunden sichern. Das Tool unterstützt jetzt auch einen Modus zur Ereignisprotokollüberwachung, in dem es ausgeführt wird, bis Sie es beenden, und Ereignisprotokolldatensätze direkt während der Generierung ausgibt.
Sie können PsTools, einschließlich PsKill und PsLoglist, unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml
SYSINTERNALS AUF WWW.MICROSOFT.COM
Dies ist die aktuelle Version der Sysinternals-Verweise in den Microsoft Knowledge Base (KB)-Artikeln, die seit dem letzten Newsletter veröffentlicht wurden. Damit sind insgesamt 63 öffentliche KB-Verweise auf Sysinternals verfügbar.
FEHLERBEHEBUNG: Die Windows Media Player 9-Serie für Windows greift häufig auf die Registrierung zu und kann die Leistung beeinträchtigen: http://support.microsoft.com/?kbid=886423
Übersicht über das GDI+ 1.0-Sicherheitsupdate: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/gdiplus10security.asp
Bearbeiten der Registrierung: http://support.microsoft.com/default.aspx?scid=kb;en-gb;835818
Fehlermeldung mit dem Hinweis, dass keine Informationen zur Anzeige in dieser Ansicht vorhanden sind, wenn Sie versuchen, auf eine Projektansicht zuzugreifen: http://support.microsoft.com/default.aspx?scid=kb;en-us;810596
INTERNALS-INFORMATIONEN
BROWSEN IM INTERNET
Vor etwa einem Jahr machte ich bekannt, dass ich von Internet Explorer (IE) zu Mozilla gewechselt bin, weil die für einen annehmbaren Internetbrowser obligatorischen Features in IE nicht verfügbar waren, etwa Popupblockierung, Browsen mit Registerkarten, automatisches Ausfüllen von Formularen und Filtern von Werbung. Nur wenig später wies mich jemand auf Avant Browser hin, einen kleinen Download, der IE verwendet (ist kein eigenständiger Browser), um all diese und noch mehr Funktionen bereitzustellen. Die umständliche Benutzeroberfläche von Mozilla und die mangelnde Kompatibilität mit bestimmten Websites, die ich häufig besuche, haben mir die Entscheidung leicht gemacht. Das neue FireFox-Release ist zwar in beiderlei Hinsicht besser, es gibt aber immer noch einige inkompatible Websites (wie beispielsweise Windows Update), sodass ich noch nicht zu einem weiteren Wechsel gezwungen war.
Die Langsamkeit der Fortschritte, die Microsoft bei der Verbesserung von IE macht, ist selbst angesichts der geringfügigen Verbesserungen von IE in Windows XP SP2 so beschämend, dass sie den Kauf von Avant Browser und die Integration dieses Browsers in die nächste Version von IE nahelegen sollte.
Sie können Avant Browser unter der folgenden Adresse herunterladen: http://www.avantbrowser.com
VERWENDEN VON LIVEKD ZUR PROBLEMBEHANDLUNG FÜR FEHLERHAFTE SYSTEME
LiveKd ist ein Hilfsprogramm, das ich für die dritte Auflage von Inside Windows 2000 entwickelt habe (jetzt als Freewaretool auf Sysinternals verfügbar). Dieses Tool ermöglicht es Ihnen, mit den Tools „Windbg“ oder „Kd“ im Microsoft-Debugtools für Windows-Paket Debugbefehle auszuführen, die normalerweise verwendet werden, um Absturzabbilder und gesperrte Systeme auf einem System zu untersuchen, das online und aktiv ist. Microsoft hat eine ähnliche Funktion namens „Debuggen des lokalen Kernels“ für die Ausführung der Debugtools unter Windows XP und höher eingeführt. Es gibt mehrere Funktionen, die Sie mit LiveKd ausführen können, die jedoch beim „Debuggen des lokalen Kernels“ nicht verfügbar sind. Sie können z. B. keine Threadstapel im Kernelmodus mit Debuggen des lokalen Kernels untersuchen, und der Befehl „list-kernel modules“ (lm k
) zeigt nur den Betriebssystemkernel und nicht die anderen geladenen Treiber an, wenn diese im Modus zum Debuggen des lokalen Kernels ausgeführt werden. Beide Befehle funktionieren innerhalb von LiveKd.
Ein weiterer Befehl, der nicht beim Debuggen des lokalen Kernels, aber in LiveKd funktioniert, ist .dump
. Von einem*r Entwickler*in bei Microsoft Product Support Services (PSS) habe ich gehört, dass der Befehl .dump
nützlich sein kann, um ein fehlerhaftes System zu reparieren. Ein Computer, auf dem Probleme auftreten, der aber Dienste wie Web oder eine Datenbank bereitstellt, ist möglicherweise kein Kandidat für einen Neustart oder herkömmliches Debuggen, bei dem das System während der Untersuchung angehalten wird. Die Ausführung von LiveKd und „.dump“ führt zu einer Absturzabbilddatei, die den Inhalt des physischen Speichers des Systems enthält. Sie können die Absturzabbilddatei auf einen anderen Computer übertragen und den Zustand des Betriebssystems und von Dienstanwendungen analysieren, indem Sie die Absturzabbilddatei in „WinDbg“ oder „Kd“ laden, um einen Ausfall zu vermeiden, während Sie die Ursache eines Problems untersuchen.
Sie können LiveKd unter der folgenden Adresse herunterladen:
http://www.sysinternals.com/ntw2k/freeware/livekd.shtml
CREEKSIDE?
Ich habe kürzlich die Initialisierung der Windows XP Service Pack 2-Version von Winlogon untersucht, den Systemprozess, der für die Darstellung der Anmeldebenutzeroberfläche verantwortlich ist, und stieß dabei in der Disassemblierung auf Code, in dem Winlogon überprüft, ob eine DLL namens „ediskeer.dll“ im Verzeichnis \Windows\System32
vorhanden ist, sicherstellt, dass diese DLL digital von einem vertrauenswürdigen Signaturgeber signiert ist, und wenn dies zutrifft, eine unbenannte, von der DLL exportierte Funktion aufruft. Der Winlogon-Code, der ausgeführt wird, wenn sich jemand beim System anmeldet, ruft auch die DLL auf, wenn diese während der Initialisierung geladen wurde.
Ich suchte auf meinem System nach der DLL und fand sie nicht, und sie ist auch nicht auf der Service Pack 2-CD vorhanden. Was also ist die Funktion der DLL? Anhand der Debugsymbole, die Microsoft für das Betriebssystem bereitstellt, konnte ich sehen, dass „Winlogon“ eine Variable namens „Creekside“ konfiguriert, wenn „ediskeer.dll“ vorhanden und signiert ist. Dann bemerkte ich, dass „ediskeer“ aus den letzten acht Buchstaben von „creekside“ in umgekehrter Reihenfolge besteht. Ich bin mir immer noch nicht sicher, auf was sich Creekside bezieht, vermute aber, dass die DLL nur in der Windows XP Starter Edition enthalten ist, der kostengünstigen Version von Windows XP, die Microsoft kürzlich für Entwicklungsländer eingeführt hat. Die Starter Edition basiert auf demselben Betriebssystemkern wie die Windows XP Professional und Home Editions, die Anzahl von Anwendungen, die Benutzer*innen gleichzeitig ausführen können, ist jedoch beschränkt. Wenn ich richtig liege, lädt Winlogon die DLL, um diesen Grenzwert zu erzwingen, und aktiviert ihn bei jeder Anmeldung neuer Benutzer*innen.
CHKREG-REGISTRIERUNGSKORREKTUR
Im Laufe der Jahre haben Bryce und ich zahlreiche Anfragen für eine Registrierungsfunktion erhalten, die „Chkdsk“ entspricht, dem Hilfsprogramm für die Konsistenzüberprüfung des Dateisystems. Wir haben noch nie ein Programm für diese Zwecke geschrieben, weil wir dachten, dass die Zielgruppe zu klein ist, um den Aufwand zu rechtfertigen. Vor etwa einem Jahr hat Microsoft das wenig bekannte Tool „Chkreg“ veröffentlicht, ein Chkdsk-Tool für die Registrierung, das viele Arten von Registrierungsbeschädigungen behebt.
Chkreg wird leider nur unter Windows 2000 unterstützt (es funktioniert möglicherweise auch für Windows NT 4- und Windows XP-Registrierungen) und wird als „native“ Anwendung implementiert, die die native API anstelle der Windows-API verwendet und daher nicht unter Windows ausgeführt wird. Wenn Sie das Tool herunterladen, müssen Sie es auf sechs Windows Setup-Startdisketten installieren, was eine mühsame und zeitaufwändige Angelegenheit ist. Wir haben die Entwickler*innen von Chkreg kontaktiert und sie gebeten, die Windows-Version öffentlich freizugeben, die, wie wir erfahren haben, von Microsoft Product Support Services (PSS) intern verwendet wird. Bisher haben wir aber noch keine Aussage dazu erhalten, ob oder wann sie veröffentlicht wird.
Sie können Chkreg unter der folgenden Adresse herunterladen:
http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en
WINDOWS-SPEICHERDIAGNOSE
Eine der frustrierendsten Erfahrungen für Windows-Benutzer*innen ist ein abstürzendes System. In den meisten Fällen ist der Fehler ein fehlerhafter Gerätetreiber von Drittanbieter*innen, den Sie beheben können, indem Sie den Treiber deaktivieren oder auf eine Version mit einer Korrektur aktualisieren. Etwa 10 % der an Microsoft Online Crash Analysis (OCA) gemeldeten Abstürze werden durch Hardwareprobleme verursacht, von denen die meisten datenträger- und speicherbezogen sind.
Wenn bei Ihnen Abstürze auftreten, die OCA nicht diagnostizieren kann, oder Sie ein Speicherproblem vermuten, sollten Sie sich ein paar Minuten Zeit nehmen, um sich die Microsoft Windows-Speicherdiagnose (Windows Memory Diagnostic, WMD) anzusehen, ein kürzlich von Microsoft veröffentlichtes Tool zur Speicherüberprüfung. Das Installationsprogramm für WMD fragt nach einer Diskette oder CD, auf der es das WMD-Programm speichert. Wenn Sie einen Computer von der von Ihnen erstellten Diskette oder CD starten, führt die Windows-Speicherdiagnose einen gründlichen Test des Speichers des Computers aus, wobei der Fortschritt und etwaige Probleme auf dem Bildschirm angezeigt werden. Falls Speicherfehler vorliegen, kann Ihnen die Windows-Speicherdiagnose die Frustration endloser Windows-Abstürze ersparen.
Sie können die Windows-Speicherdiagnose unter der folgenden Adresse herunterladen: http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en
UNTERSUCHEN NICHT DOKUMENTIERTER SCHNITTSTELLEN
Das Feature „DEP-Status“, das ich im Abschnitt zu den Prozess-Explorer-Verbesserungen weiter oben im Newsletter beschrieben haben, basiert auf einer nicht dokumentierten Funktion. Ich dachte, dass es für viele von Ihnen interessant sein könnte, wie ich ohne Zugriff auf den Windows-Quellcode (mein Koautor für Windows Internals, Dave Solomon, hat Zugriff, ich aber nicht) herausgefunden habe, wie das Feature funktioniert und richtig verwendet wird.
Der erste Schritt in meinem Analyseprozess war die Annahme, dass eine DEP-Statusabfrage für einen Prozess über die NtQueryInformationProcess
-API weitergeleitet wird. Viele Windows-API-Funktionen, die Informationen zu einem Prozess abrufen, verwenden die NtQueryInformationProcess
-Schnittstelle, um die Informationen abzurufen. Auf diese Funktion, die als Prototyp in der Datei „Ntddk.h“ des Windows Driver Development Kit (DDK) enthalten ist, kann im Benutzermodus über die Systemaufrufschnittstelle der „nativen API“ zugegriffen werden:
NTSYSAPI
NTSTATUS
NTAPI
NtQueryInformationProcess(
IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
Die ersten beiden Argumente sind ein Handle für einen Prozess und eine „Prozessinformationsklasse“. Die PROCESSINFOCLASS-Enumeration, deren erste Definitionen das folgende Beispiel zeigt, ist auch in NTDDK.H enthalten:
typedef enum _PROCESSINFOCLASS {
ProcessBasicInformation,
ProcessQuotaLimits,
ProcessIoCounters,
ProcessVmCounters,
ProcessTimes,
//...
Da DEP in Windows XP SP2 eingeführt wurde, habe ich nicht erwartet, dass die Informationsklasse für DEP-Abfragen in den Windows XP- oder Windows Server 2003-Versionen von „Ntddk.h“ aufgeführt wird, und eine kurze Überprüfung hat bestätigt, dass sie dort nicht vorhanden ist. Daher musste ich eine Disassemblierung der Datei „Ntoskrnl.exe“ von SP 2 untersuchen, das Image, in dem NtQueryInformationProcess
implementiert ist, um zu sehen, ob ich die DEP-Abfrageinformationsklasse empirisch bestimmen kann.
Ein Disassembler verwendet ein ausführbares Image und listet die Anweisungen in der Assemblysprache auf, aus denen der Code besteht. Anweisungen in der Assemblysprache werden direkt den Anweisungen zugeordnet, die von einem Prozessor ausgeführt werden. Der Disassembler, den ich verwende, ist IDA Pro von http://www.datarescue.com, da dieser die Debuginformationsdateien von Microsoft versteht und die Informationen in die Ausgabe der in Assemblysprache integriert. In der Disassemblierung habe ich die verworrene Sequenz von Anweisungen am Anfang von NtQueryInformationProcess entdeckt, die den Prozessinformationsklassen-Parameter verwendet und spezifischen Code für jede Klasse ausführt. Da ich wusste, dass die Informationsklasse neu war, konnte ich die Ausführung der Klassen überspringen, für die ich Definitionen in der PROCESSINFOCLASS
-Enumeration von Ntddk gesehen habe. Dies beschränkte meine Untersuchung auf die ungefähr drei oder vier neuen Klassen, die seit der Veröffentlichung von Windows XP eingeführt wurden.
Eine der Klassen, die dem ProcessInformationClass
-Wert 0x22 entspricht, führte mich durch einen Codepfad in eine Funktion namens MmGetExecuteOptions
, deren Anfang Sie hier sehen:
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 hat mir in der ersten Zeile der obigen Ausgabe gezeigt, dass die Funktion ein Argument akzeptiert, von dem ich annahm, dass es ein Zeiger auf eine Variable ist, die die DEP-Einstellungen empfängt. Ich habe genügend Zeit mit der Untersuchung der Disassemblierungen des Windows-Kernels verbracht, um zu erkennen, dass es sich bei der Anweisungssequenz mov eax, large fs:124h; mov eax,[eax+44h]
um einen Lesevorgang der aktuellen _KTHREAD
-Threaddatenstruktur in der PCR-Struktur (Processor Control Region), gefolgt von einem Verweis des Felds KPROCESS
bei Offset 0x44 in der _KTHREAD
-Struktur handelt.
Die darauffolgenden Anweisungen lesen einzelne Bits im Byte bei Offset 0x6B in der _KPROCESS
-Struktur.
Da ich nicht wusste, was sich bei Offset 0x6B in einem _KPROCESS
befindet, habe ich Windbg im lokalen Kernel-Debugmodus gestartet und den Befehl dt _kprocess
ausgeführt, der Folgendes gemeldet hat:
+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
Diese Bits beziehen sich freilich auf DEP, und es scheint, dass MmGetExecuteOptions
sie aus dieser Struktur in die entsprechenden Bits an der Speicheradresse kopiert, die als ProcessInformation
-Argument an NtQueryInformationProcess
übergeben wird. Daher kam ich zu dem Schluss, dass ich den DEP-Status eines Prozesses abfragen kann, indem ich NtQueryInformationProcess
mit einem ProcessInformationClass
-Wert von 0x22, der Adresse eines DWORD
-Werts (4-Byte-Ganzzahl) und einer Länge von 4 aufrufe. MmGetExecuteOptions
gibt anscheinend nur die Flags für den aktuellen Prozess zurück und ignoriert den ProcessHandle
-Parameter (Prozess-Explorer fragt den DEP-Status anderer Prozesse ab, indem sein Hilfstreiber über die KeAttachProcess
-API in diese Prozesse wechselt).
Bis auf einige kleinere Unterschiede in der 64-Bit-Version von Windows war ich fertig, da ich eine 64-Bit-Version von Prozess-Explorer zur Verfügung stelle. Unter 64-Bit-Windows erfordert MmGetExecuteOptions
, dass ProcessHandle
-1 ist. Wenn der aktuelle Prozess ein 64-Bit-Prozess ist, wird ein Fehler vom Typ STATUS_INVALID_PARAMETER
zurückgegeben, da DEP für 64-Bit-Prozesse immer aktiviert ist. Ich habe Windbg zum Disassemblieren der 64-Bit-Version von „Ntoskrnl.exe“ verwendet, obwohl ich mittlerweile über die Version von IDA Pro verfüge, die die AMD64-Imagedisassemblierung unterstützt.
INTERNALS-SCHULUNG
WINDOWS CONNECTIONS IN SAN FRANCISCO
Ich präsentiere zwei Sitzungen auf der Windows Connections-Konferenz, die vom Windows IT Pro-Magazin veranstaltet wird und vom 17. bis 20. April in San Francisco stattfindet. Eine ist eine allgemeine Sitzung mit dem Namen „Understanding and Fighting Malware: Viruses, Spyware, and Rootkits“ (Schadsoftware und ihre Bekämpfung: Viren, Spyware und Rootkits), in der ich beschreibe, wie Schadsoftware Sicherheitsrisiken ausnutzt, um sich zu verbreiten und Sicherheitsmaßnahmen zu umgehen, wie Schadsoftware mit komplexen Techniken namens „Rootkits“ versteckt wird und wie sie diese erkennen und aus Ihrem System entfernen.
Der Titel der anderen Sitzung ist „Troubleshooting Windows Memory Problems“ (Problembehandlung für Speicherprobleme in Windows), in der Sie erfahren, wie Sie die altbekannten Fragen beantworten: „Was bedeuten die in Task-Manager angezeigten Werte?“, „Wodurch wird mein Arbeitsspeicher verbraucht?“ und „Wie groß sollte die Auslagerungsdatei sein?“
Unter der folgenden Adresse können Sie die Konferenzbroschüre herunterladen und sich registrieren:
http://www.devconnections.com/shows/win/default.asp?s=60#
PRAKTISCHE WINDOWS INTERNALS-/SYSINTERNALS-KURSE VON MARK RUSSINOVICH
Verbringen Sie fünf Tage mit Mark Russinovich und David Solomon, den Autoren des neuen Buchs „Windows Internals, 4. Auflage“, um erweiterte Problembehandlungstechniken kennen zu lernen und mehr über die Internals des Kernels der Betriebssysteme Windows NT/2000/XP/2003 zu erfahren. IT-Expert*innen, die Windows-Server und -Arbeitsstationen bereitstellen und unterstützen, müssen in der Lage sein, hinter die Kulissen zu sehen, wenn Probleme auftreten. Wenn Sie die Internals, die internen Aspekte, des Windows-Betriebssystems verstehen und wissen, wie man erweiterte Tools zur Problembehandlung einsetzt, können Sie solche Probleme besser bewältigen und Probleme mit der Systemleistung besser verstehen. Das Verständnis der Internals kann Programmierer*innen helfen, die Vorteile der Windows-Plattform besser zu nutzen und erweiterte Debugtechniken bereitzustellen. Und da der Kurs mit vollständigem Zugriff auf den Quellcode des Windows-Kernels UND der Unterstützung der Entwickler*innen entwickelt wurde, können Sie sicher sein, dass Sie die wahre Geschichte erfahren.
Nächste Termine:
- 6. – 10. JUNI, ORLANDO, FLORIDA
- 11. – 15. JULI, MÜNCHEN, DEUTSCHLAND
- 19. – 23. SEPTEMBER, SAN FRANCISCO, KALIFORNIEN
- 5. – 9. DEZEMBER, AUSTIN, TEXAS
HINWEIS: Dies ist ein praktischer Kurs. Alle Teilnehmer*innen müssen ihren eigenen Laptop mitbringen (Konfigurationsanweisungen werden vorab versendet).
Sie erhalten ein umfassendes Verständnis der Kernelarchitektur von Windows NT/2000/XP/2003, einschließlich der Prozesse, der Threadplanung, der Speicherverwaltung, der E/A, der Dienste, der Sicherheit, der Registrierung und des Startprozesses. Darüber hinaus werden erweiterte Problembehandlungstechniken wie Schadsoftwaredesinfektion, Absturzabbildanalyse (Bluescreen) und das Abrufen früherer Startprobleme behandelt. Außerdem erhalten Sie fortgeschrittene Tipps zur Verwendung der wichtigsten Tools von www.sysinternals.com (z. B. Filemon, Regmon, Process Explorer), um eine Reihe von System- und Anwendungsproblemen zu beheben, z. B. langsame Computer, Virenerkennung, DLL-Konflikte, Probleme mit Berechtigungen und Registrierungsprobleme. Diese Tools werden täglich vom Microsoft-Produktsupport verwendet und wurden effektiv eingesetzt, um eine Vielzahl von Desktop- und Serverproblemen zu lösen. Wenn Sie also mit dem Betrieb und der Anwendung vertraut sind, können Sie mit verschiedenen Problemen unter Windows umgehen. Beispiele aus der Praxis zeigen die erfolgreiche Anwendung dieser Tools zur Lösung realer Probleme.
Besuchen Sie http://www.sysinternals.com/troubleshoot.shtml, um sich zu registrieren.
Vielen Dank, dass Sie den Sysinternals-Newsletter gelesen haben.
Veröffentlicht am Mittwoch, 5. Januar 2005 um 16:36 Uhr von ottoh
[Newsletter-Archiv ^] [< Band 6, Nummer 2] [Band 7, Besondere Ankündigung >]