Partager via


[Archive des bulletins ^] [< Volume 6, Numéro 2] [Volume 7, Annonce spéciale >]

Bulletin d’informations System Internals Volume 7, Numéro 1

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


5 janvier 2005 - Dans ce numéro :

  1. ÉDITORIAL

    • Avez-vous DEP ?
  2. WINDOWS INTERNALS, 4ÈME ÉDITION

  3. NOUVEAUTÉS DE SYSINTERNALS

    • Statistiques de novembre
    • Articles du magazine Sysinternals
    • Flux RSS Sysinternals
    • Mark est un MVP Microsoft
    • Autoruns v6.01
    • Process Explorer v8.61
    • Sigcheck v1.0
    • Bginfo v4.07
    • Regjump v1.0
    • Hex2dec v1.0
    • Tcpvcon v2.34
    • Mises à jour PsTools
    • Sysinternals chez Microsoft
  4. INFORMATIONS INTERNES

    • Navigation Internet
    • Utilisation de LiveKd pour résoudre des problèmes liés aux systèmes malades
    • Creekside?
    • Fixateur de registre ChkReg
    • Diagnostic de mémoire Windows
    • Recherche d’interfaces non documentées
  5. FORMATION INTERNALS

    • Connexions Windows à San Francisco
    • Classes pratiques Internals/Sysinternals Windows par Mark Russinovich et David Solomon

Le bulletin Sysinternals est parrainé par Winternals Software, sur le web à l’adresse http://www.winternals.com. Winternals Software est le principal développeur et fournisseur d'outils système avancés pour Windows NT/2000/XP/2003.

Winternals est heureux d’annoncer la sortie d’Administrator’s Pak 5.0 avec une mise à jour complète d’ERD Commander 2005.

Les nouvelles fonctionnalités d’ERD Commander 2005 sont les suivantes :

  • Analyseur d’incident : diagnostique rapidement et facilement le pilote responsable d’un incident Windows, même si le système ne démarre pas
  • DiskWipe : efface en toute sécurité les disques durs ou les volumes ; Exécutions automatiques : découvrez les applications qui démarrent lors de l’installation de Windows et de l’ouverture de session utilisateur. Utile pour diagnostiquer les problèmes de ressources système et rechercher les programmes malveillants potentiels
  • Navigateur web FireFox : téléchargez les correctifs logiciels, les mises à jour des pilotes, recherchez de l’aide dans la Base de connaissances Microsoft, tout cela sur le système que vous essayez de réparer
  • Assistant de désinstallation de correctif logiciel, qui vous permet de supprimer des correctifs logiciels et des Service Packs sur un système non démarrable
  • Réparation de fichiers système, qui vérifie l’intégrité des fichiers système Windows.

Ces fonctionnalités, de nombreuses améliorations et une meilleure facilité d’utilisation d’ERD Commander 2005, ainsi qu’un nouveau client de récupération à distance plus facile à créer et à utiliser basé sur Windows PE sont tous inclus dans le nouveau Pak 5.0 d’Administrateur, disponible fin janvier 2005. Pour vous inscrire à une évaluation du Pak 5.0 d’Administrateur lors de sa sortie, visitez http://www.winternals.com/ap5preview/.

ÉDITORIAL

Bonjour,

Bienvenue dans le bulletin Sysinternals. Le bulletin compte actuellement 40 000 abonnés.

L’augmentation des programmes malveillants, y compris les logiciels espions et les virus, suscite une préoccupation générale quant à la sécurité. Les bonnes mesures de sécurité incluent le suivi des correctifs du système d’exploitation et des applications, l’installation et la configuration du pare-feu, des antivirus et des outils de suppression de logiciels espions, et l’exercice de jugement lors du téléchargement à partir d’Internet ou de l’ouverture de pièces jointes. Malgré des mesures approfondies, cependant, les programmes malveillants peuvent toujours trouver des moyens de se faufiler par des défenses et infecter un ordinateur. La faille la plus courante dans les défenses d’un système est la vulnérabilité de dépassement de mémoire tampon, et c’est pourquoi vous devez être familiarisé avec la fonctionnalité de prévention de l’exécution des données (DEP, pour Data Execution Prevention) de Windows XP Service Pack 2.

Un dépassement de mémoire tampon est une erreur de programmation dont les programmes malveillants peuvent tirer parti pour prendre le contrôle du thread qui exécute l’erreur de codage. Les dépassements de mémoire tampon sont généralement basés sur la pile, ce qui signifie qu’un attaquant donne au programme plus de données que ne peut contenir une mémoire tampon stockée sur la pile. Les données sont conçues de telle sorte que lorsque la fonction avec le dépassement de capacité tente de revenir à la fonction à partir de laquelle elles ont été appelées, elle retourne à un emplacement dans les données.

Malheureusement, les erreurs de dépassement de mémoire tampon peuvent toucher même les logiciels les plus testés et examinés. Plusieurs dépassements de mémoire tampon sont annoncés pour Windows et ses composants logiciels sur une base mensuelle (Linux et ses applications ne sont pas à l’abri, avec un nombre de dépassements de mémoire tampon similaire à Windows). Un thème courant pour la plupart des attaques de dépassement de mémoire tampon est qu’elles entraînent l’exécution de code placé dans des régions de mémoire qui devraient contenir uniquement des données.

Bien que le processeur Intel Itanium ait pris en charge la protection sans exécution à partir de sa version, ce n’est que sous Windows XP SP2 (et le prochain Windows Server 2003 SP1) que Windows utilise réellement cette prise en charge matérielle, par exemple en marquant les piles de threads et la mémoire du tas comme non exécutable. Parmi les autres processeurs qui prennent en charge la protection matérielle sans exécution, citons les processeurs AMD64 Opteron 64 bits et Athlon 64, ainsi que le clone d’Intel appelé EM64T (désormais disponible sur les processeurs Xeon et Xeon 4. AMD et Intel ont récemment introduit des processeurs 32 bits sans prise en charge de l’exécution : AMD Sempron et la famille « J » de Pentium 4 (par exemple, 520J, 540J, etc.).

Il peut vous sembler évident que Windows doit par défaut appliquer une protection sans exécution pour les piles et la mémoire du tas d’applications afin d’empêcher les attaques de dépassement de mémoire tampon, mais il existe des centaines de milliers d’applications existantes, dont certaines peuvent en fait s’appuyer sur le paramètre non appliqué pour un fonctionnement correct. Par conséquent, Windows XP SP2, la première version de Windows qui applique une protection sans exécution, permet à un administrateur de contrôler les processus protégés et ceux qui ne le sont pas. Tout d’abord, dans une décision visant à améliorer la sécurité à l’avenir, la version 64 bits de Windows applique toujours des indicateurs sans exécution pour tous les processus 64 bits. Si un éditeur de logiciels souhaite publier une application 64 bits, il doit s’assurer qu’il n’exécute pas de code à partir de régions de mémoire non exécutables (il peut marquer une région de données comme exécutable s’il génère du code à la volée, comme le font souvent les applications Java et .NET).

Deuxièmement, étant donné que les attaques de dépassement de mémoire tampon sont généralement destinées aux composants du système d’exploitation, Windows XP 32 bits et Windows Server 2003 protègent par défaut les images de système d’exploitation principales. Toutefois, pour les applications 32 bits (exécutées sur Windows 32 bits ou Windows 64 bits), Windows XP utilise par défaut une stratégie d'« adhésion » (les applications ne sont pas protégées par défaut) tandis que Windows Server 2003 est défini par défaut sur « non-adhésion » (les applications sont protégées par défaut, mais des applications spécifiques peuvent être exclues). Cela est logique, car la sécurité est généralement prioritaire sur les systèmes serveurs. Vous pouvez modifier les paramètres d’adhésion ou pas dans la boîte de dialogue de configuration de DEP à laquelle vous accédez via le bouton Paramètres de la section Performances de la page Avancés de l’applet du panneau de configuration système.

Comme je l’ai mentionné précédemment, à l’exception des processeurs AMD Sempron et Pentium 4 « J », toutes les puces compatibles x86 publiées à ce jour ne sont pas prises en charge. Toutefois, Windows XP et Windows Server 2003 implémentent une forme limitée de DEP sur ces processeurs appelés « DEP logicielle ». Étant donné que le système d’exploitation prend le contrôle d’un thread lorsque le thread génère une erreur, il peut s’assurer que le gestionnaire d’erreurs qu’il exécute est inscrit de manière statique par le code du programme. Cela empêche une attaque qui redirige le gestionnaire d’erreurs d’un thread pour exécuter du code malveillant dans une mémoire tampon de pile débordée, comme ça a été le cas avec le virus CodeRed sur IIS lors de sa publication en 2001.

Malgré sa simplicité relative, DEP est l’une des défenses les plus solides du système d’exploitation dans son bouclier contre les programmes malveillants qui se propagent automatiquement. Malheureusement, trois choses limitent sa puissance : l’absence de prise en charge matérielle dans la plupart des processeurs actuellement déployés pour le paramètre de non-exécution, le paramètre d’adhésion par défaut dans Windows XP de sorte que seuls les processus principaux du système d’exploitation sont protégés et le manque de sensibilisation. La DEP logicielle étant limitée dans son étendue, elle n’est que marginalement efficace, sauf si vous exécutez Windows sur un matériel qui prend en charge la non-exécution. Le fait que Windows XP adhère par défaut signifie que même lorsque les utilisateurs exécutent Windows sur du matériel prenant en charge la non-exécution, les seuls processus qui bénéficient d’une protection DEP sont ceux du système d’exploitation . S’il y a un dépassement de capacité de mémoire tampon dans votre pare-feu tiers, navigateur Web, lecteur de messagerie ou autre application compatible réseau, vous êtes toujours vulnérable. En fait, certaines des applications les plus exploitées par les programmes malveillants, IIS et Outlook, ne sont pas protégées par le paramètre d’adhésion. Enfin, étant donné que la plupart des gens ne sont pas conscients de son comportement par défaut, voire de DEP, les systèmes restent pour la plupart exposés à des problèmes de dépassement de mémoire tampon.

Le moment où Microsoft oblige les utilisateurs à payer le prix de la compatibilité en échange d’une meilleure sécurité ou les utilisateurs vont finir par payer un prix beaucoup plus élevé à cause des virus, et ils transmettront à leur tour la facture à Microsoft. En attendant, je vous recommande vivement d’effectuer une mise à niveau vers Windows XP SP2 (Windows XP 64 bits Edition et Windows Server 2003 SP1 prennent également en charge de la non-exécution), de passer à l’option d’adhésion et de mettre à niveau vers un processeur avec prise en charge de la non-exécution (malheureusement, je n’obtiendrai pas de commission).

Veuillez transmettre le bulletin d’informations à des amis que vous pensez être intéressés par son contenu.

Merci !

Mark

WINDOWS INTERNALS, 4ÈME ÉDITION

Le livre Microsoft officiel sur les éléments internes de Windows Server 2003, Windows 2000 et Windows XP, que j’ai co-écrit avec Dave Solomon, est désormais disponible dans les librairies. Dave et moi avons étendu le contenu de l’édition précédente d’environ 25 %, en ajoutant de nouveaux documents non seulement sur les modifications apportées à Windows Server 2003 et XP, mais aussi sur les outils et techniques de résolution des problèmes. Vous trouverez des conseils avancés sur l’utilisation de Process Explorer, Filemon et Regmon, et il existe un nouveau chapitre complet sur l’analyse de l’image mémoire après incident sur Windows.

En savoir plus sur le contenu du livre et commander en ligne à l’adresse

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

NOUVEAUTÉS DE SYSINTERNALS

FLUX RSS SYSINTERNALS

J’ai reçu la demande d’ajout d’un mécanisme de notification de nouvelle publication à Sysinternals si souvent que j’ai finalement suivi la tendance à l’échelle du web et ajouté un flux RSS (si vous n’êtes pas familiarisé avec les flux RSS, voici une bonne introduction: http://rss.softwaregarden.com/aboutrss.html). Le flux me donne également la possibilité de vous informer des correctifs de bogues mineurs et des mises à jour qui ne justifient pas une description complète sur la première page. Cela semble déjà être le moyen préféré pour les utilisateurs d’apprendre les mises à jour en fonction du nombre d’accès que le flux obtient par jour.

Accédez au flux RSS Sysinternals à l’adresse suivante :

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

ARTICLES DU MAGAZINE SYSINTERNALS

Il y a environ six mois, j’ai commencé à créer une colonne semi-mensuelle dans Windows IT Pro Magazine (anciennement Windows and .NET Magazine) sur les outils Sysinternals. Chaque colonne décrit un outil différent, fournissant des conseils sur l’utilisation avancée et des informations sur leur fonctionnement.

Parmi les trois qui ont été publiées, listées ci-dessous, les deux premières sont accessibles en ligne pour les non-abonnés et la troisième le sera bientôt :

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

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

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

MARK EST UN MVP MICROSOFT

Le responsable du SDK de la plate-forme Microsoft Most Valuable Professional (MVP) m’a nommé MVP pour 2005. Je lui suis reconnaissant, ainsi qu’à Microsoft, pour cette reconnaissance officielle des contributions que j’ai apportées aux clients Microsoft avec Sysinternals.

STATISTIQUES DE NOVEMBRE

J’ai finalement obtenu un programme d’analyse du trafic web décent pour Sysinternals et j’ai analysé les fichiers journaux pour le mois de novembre. L’ampleur des chiffres m’a étonné. Voici quelques points forts :

  • 3,6 millions de pages vues
  • 775 000 visiteurs uniques
  • 1,2 million de téléchargements d’utilitaires
  • 200 000 téléchargements de Process Explorer, le téléchargement numéro un

AUTORUNS V6.01

Autoruns a beaucoup évolué au cours des derniers mois avec deux mises à jour principales du numéro de version. La dernière version d’Autoruns affiche des emplacements de démarrage automatique en plus des dossiers de démarrage et de clé d’exécution standard, notamment des DLL de notification Winlogon, des barres d’outils Explorer, des extensions d’espace de noms et des objets d’assistance de navigateur, ainsi que des DLL d’initialisation automatique. Une autre nouvelle fonctionnalité, l’élément de menu Google (emprunté à Process Explorer) vous aide à identifier les images inconnues en ouvrant un navigateur et en lançant une recherche dans le nom de l’image sélectionnée.

Une autre nouvelle fonctionnalité, la vérification de la signature d’image, peut vous aider à faire la distinction entre les logiciels malveillants et les composants système ou les applications approuvées. Microsoft inclut généralement des hachages de fichiers de système d’exploitation signés avec la clé de signature privée de Microsoft. Les fonctions de chiffrement Windows déchiffrent les hachages signés avec la clé de signature publique de Microsoft et Autoruns valide les images sur votre système en comparant leurs hachages avec les versions déchiffrées, en préfixant le nom de la société de l’image avec « (Vérifié) » en cas de correspondance. Si une image a été falsifiée, endommagée, remplacée ou si un hachage est signé par un éditeur qui n’est pas approuvé par votre système, Autoruns signale le nom de l’entreprise pour l’image comme « (Non vérifié) ».

En tant qu’administrateur système, vous souhaiterez peut-être vérifier les images de démarrage automatique dans des comptes autres que ceux auxquels vous êtes connecté. Autoruns inclut donc désormais un menu Utilisateur avec des sélections pour chaque compte disposant d’un profil stocké sur l’ordinateur.

Enfin, il existe maintenant un équivalent de ligne de commande de l’interface graphique d’Autoruns, appelé Autorunsc, qui répertorie les informations d’exécution automatique dans la console. Sa capacité à mettre en forme la sortie au format CSV, lorsqu’elle est combinée à l’utilitaire PsExec de Sysinternals, vous permet de générer facilement des inventaires des images de démarrage automatique configurées pour les ordinateurs de votre réseau.

Télécharger AutoRuns à l’adresse
http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml

PROCESS EXPLORER V8.61

Une fois de plus, Process Explorer, un outil qui remplace le Gestionnaire des tâches en tant qu’utilitaire avancé de gestion des processus, a été l’outil sur lequel je me suis le plus concentré, et c’est parce que je reçois beaucoup de commentaires à ce sujet. Depuis le dernier bulletin, Process Explorer est passé de la version 8.4 à la version 8.6. Une multitude de nouvelles fonctionnalités marquent ces deux versions, notamment un élément de menu Google qui lance une recherche d’informations sur un processus sélectionné, un onglet chaînes dans la boîte de dialogue des propriétés de processus qui répertorie les chaînes ASCII et Unicode présentes dans un fichier image de processus, une entrée de menu de chaînes qui répertorie les chaînes dans un fichier image DLL sélectionné, et le nom du processus qui consomme le plus de CPU dans l’info-bulle qui s’affiche lorsque vous pointez la souris sur l’icône de la barre d’état de Process Explorer.

De nombreuses personnes ont demandé des fonctionnalités qui leur ont manqué lors du basculement à partir du Gestionnaire des tâches, telles que l’onglet Applications du Gestionnaire des tâches. L’onglet Applications affiche une liste de fenêtres de niveau supérieur sur le bureau interactif, ainsi que les états du thread propriétaire de chaque fenêtre : « En cours d’exécution » si le thread attend actuellement de recevoir un message Windows ou a traité un message Windows au cours des cinq dernières secondes, et « Ne répond pas » dans le cas contraire (ironiquement, « En cours d’exécution » indique généralement que le thread est en attente et « Ne répond pas » qu’il est en cours d’exécution). Vous pouvez maintenant obtenir ces mêmes informations avec Process Explorer en ajoutant les colonnes « Titre de la fenêtre » et « État de la fenêtre » à la vue du processus.

Process Explorer a depuis un certain temps des fonctionnalités ciblées at.NET processus, y compris la mise en surbrillance pour les processus .NET et un onglet Performances .NET dans la boîte de dialogue des propriétés des processus .NET. Un processus .NET est un processus qui a été chargé et inscrit auprès du runtime .NET. Si un processus s’inscrit quelque temps après le démarrage, Process Explorer peut ne pas se rendre compte qu’il s’agit d’un processus .NET, mais la dernière version vérifie à nouveau les processus pour les états .NET et l’appartenance à l’objet de travail lorsque vous actualisez manuellement l’affichage, soit en appuyant sur le bouton d’actualisation de la barre d’outils, la touche F5, soit en sélectionnant l’élément de menu Actualiser.

Pour les situations où vous ne savez pas quel processus possède une fenêtre, vous pouvez utiliser le nouveau bouton e recherche de fenêtre de la barre d’outils pour l’identifier. Faites simplement glisser le bouton de la barre d’outils, qui ressemble à une cible, hors de la barre d’outils et sur la fenêtre en question et Process Explorer sélectionne le processus propriétaire dans la vue de processus.

Un ajout qui sera immédiatement évident pour vous est le graphique de mini-CPU qui s’affiche près de la barre d’outils. Ce graphique montre l’historique d’utilisation du processeur du système et, comme la version développée que vous obtenez lorsque vous cliquez dessus pour ouvrir la boîte de dialogue Informations système de Process Explorer, il présente une info-bulle qui inclut l’horodatage et le processus de consommation de CPU le plus élevé pour le point dans le graphique sur lequel vous déplacez la souris. Vous pouvez déplacer le graphique vers n’importe où dans la zone de la barre d’outils, même sur sa seule ligne afin qu’il s’étende sur la largeur de la fenêtre de Process Explorer.

Deux fonctionnalités liées à la sécurité sont la vérification de la signature d’image et l’état de la protection de l’exécution des données (DEP). Lorsque vous activez l’option de signature d’image, Process Explorer vérifie si une image de processus a été signée numériquement par un signataire approuvé et, comme Autoruns, préfixe le nom de la société dans la boîte de dialogue des propriétés du processus avec « Vérifié » ou « Non vérifié ». L’option est désactivée par défaut, car la vérification de la signature d’image peut prendre plusieurs secondes lorsque la vérification accède aux sites web pour vérifier la validité des certificats de signature.

DEP, que je décris dans l’introduction de ce bulletin d’informations, est quelque chose que vous devriez activer sur Windows XP SP2 pour une protection renforcée contre les attaques de dépassement de mémoire tampon. Vous pouvez vérifier l’état de DEP d’un processus en ajoutant la colonne « État de DEP » à la vue du processus ou en vérifiant le champ « État de DEP » dans la page image de la boîte de dialogue des propriétés du processus.

Enfin, Process Explorer répertorie désormais les pilotes chargés sur le système dans la vue DLL du processus système, qui est le processus associé aux threads de travail du noyau et du pilote de périphérique. Les mêmes informations sont disponibles pour tous les pilotes ainsi que pour les DLL répertoriées pour d’autres processus, notamment la version, le nom de la société, le chemin complet et l’adresse de chargement dans l’espace d’adressage système.

Télécharger Process Explorer à l’adresse
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

SIGCHECK V1.0

De nombreux outils Sysinternals adoptent des fonctionnalités qui aident les utilisateurs à identifier les programmes malveillants et Sigcheck est un utilitaire en ligne de commande qui se concentre presque exclusivement sur cet objectif. Il utilise la même fonctionnalité de vérification de signature d’image incluse dans Autoruns et Process Explorer pour vous indiquer si un fichier a été signé numériquement par un éditeur approuvé. En outre, il signale des informations de version de fichier pour l’image ou les images que vous spécifiez, y compris le nom du produit, la description, le nom de la société et la version. Ces informations sont similaires à celles que l’outil Filever fourni avec les rapports de Windows XP et Windows Server 2003, mais Sigcheck signale également l’horodatage lorsque le fichier a été initialement « lié » ou créé pour les images non signées, et l’horodatage de la signature d’image pour celles qui sont signées. Enfin, la plupart des hachages signés sont signés avec des clés qui ont elles-mêmes été signées, une séquence qui forme ce qu’on appelle une chaîne de signature de certificat. Sigcheck prend en charge une option de ligne de commande qui lui indique d’imprimer la chaîne de signature avec des informations sur chacun des signataires de la chaîne.

L’une des utilisations potentielles liées à la sécurité de Sigcheck consiste à examiner les images .exe, .dll ou .sys non signées dans l’un des répertoires sous la racine de votre installation Windows (généralement \Windows). Vous pouvez facilement identifier les images .exe non signées en exécutant Sigcheck avec cette ligne de commande, par exemple :

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

Toutes les images Microsoft doivent inclure des signatures valides, mais la commande ci-dessus révèle malheureusement que beaucoup ne le font pas, ce qui entraîne des fichiers qui peuvent être potentiellement exploités pour masquer les programmes malveillants.

Téléchargez Sigcheck à l’adresse
http://www.sysinternals.com/ntw2k/source/misc.shtml

BGINFO V4.07

Cette mise à jour mineure de Bginfo, un outil qui affiche les informations que vous configurez sur le bureau de l’ordinateur sur lequel vous l’exécutez pour faciliter l’affichage, offre une meilleure prise en charge des bitmaps qu’il doit étirer pour s’adapter à la taille que vous spécifiez, des améliorations de la détection du processeur, la prise en charge de MySQL et l’amélioration de la compatibilité d’affichage multi-moniteurs.

Télécharger Bginfo à l’adresse
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

REGJUMP V1.0

Si vous avez déjà voulu créer des raccourcis Explorer vers des clés de Registre spécifiques ou simplement entrer le chemin d’accès d’une clé et ouvrir Regedit à l’emplacement cible, regjump est utile. Regjump est un utilitaire en ligne de commande qui utilise la même technologie « jump-to » de Registre que celle que nous avons utilisée pour la première fois dans Regmon. Donnez à Regjump un chemin d’accès au Registre comme argument de ligne de commande et Regedit s’ouvre et accède à la clé ou à la valeur spécifiée.

Télécharger Regjump à l’adresse
http://www.sysinternals.com/ntw2k/source/misc.shtml

HEX2DEC V1.0

En travaillant avec les débogueurs et le désassemblage, je dois souvent convertir un hexadécimal en décimal et vice versa. J’en ai eu assez d’ouvrir Calc, d’entrer un nombre, puis de changer de base pour voir la conversion et j’ai donc écrit un petit utilitaire de conversion de ligne de commande. Hex2dec convertit dans les deux sens et identifie facilement l’entrée comme hexadécimale si elle a un préfixe « 0x » ou « x » ou inclut les lettres « a'-'f » (elle n’est pas sensible à la casse).

Téléchargez Hex2dec à l’adresse
http://www.sysinternals.com/ntw2k/source/misc.shtml

TCPVCON V2.34

Netstat est un utilitaire de ligne de commande intégré à Windows NT et versions ultérieures qui vous montre les points de terminaison TCP et UDP actuellement actifs sur le système. La version introduite par Microsoft avec Windows XP inclut une information utile : l’identificateur de processus (PID, pour Process Identifier) du processus qui a ouvert chaque point de terminaison. Toutefois, pour déterminer le nom du processus ou toute autre information le concernant, vous devez ouvrir un outil de référencement de processus et trouver le processus avec ce PID.

TCPView est une application GUI Sysinternals qui affiche les mêmes informations de point de terminaison active, mais beaucoup plus pratique que Netstat, car il inclut le nom du processus, bascule rapidement entre les noms DNS et les adresses IP brutes, et met en surbrillance avec des couleurs de points de terminaison nouveaux et supprimés. Le téléchargement de TCPView inclut désormais TCPVCon, une version console de TCPView, pour ceux d’entre vous qui aiment utiliser des interfaces de ligne de commande. Contrairement à Netstat, TCPVCon affiche le chemin d’accès complet du processus associé à chaque point de terminaison et inclut un commutateur qui vide la sortie au format CSV.

Téléchargez Tcpvcon à l’adresse
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

MISES À JOUR PSTOOLS

PsKill et PsLoglist sont les deux PsTools qui ont bénéficié d’améliorations au cours des derniers mois. PsKill, un utilitaire de ligne de commande qui met fin aux processus sur le système local ou distant, prend désormais en charge un commutateur -t afin que vous puissiez mettre fin à toute une arborescence de processus. Un certain nombre de personnes ont demandé cette option pour faciliter le nettoyage d’arborescences incontrôlées de scripts par lots.

PsLoglist est un outil en ligne de commande qui sauvegarde les journaux des événements sur des systèmes locaux ou distants. Les mises à jour récentes ont ajouté 5 options à sa liste déjà longue de qualificateurs de ligne de commande. Les nouveaux arguments vous permettent d’exclure les types d’événements ou les sources d’événements spécifiés de la sortie ou uniquement les événements d’image mémoire des dernières minutes ou heures. Il prend désormais également en charge un mode de surveillance du journal des événements où il s’exécute jusqu’à ce que vous l’arrêtiez, en imprimant les enregistrements du journal des événements au fur et à mesure qu’ils sont générés.

Téléchargez PsTools, y compris PsKill et PsLoglist, à l’adresse
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

SYSINTERNALS SUR WWW.MICROSOFT.COM

Voici la dernière version des références Sysinternals dans les articles de la Base de connaissances Microsoft publiés depuis le dernier bulletin. Cela porte à 63 le nombre total de références de la base de connaissances à Sysinternals.

  • CORRECTIF : Lecteur multimédia Windows série 9 pour Windows accède fréquemment au Registre et peut affecter les performanceshttp://support.microsoft.com/?kbid=886423

  • Vue d’ensemble de la mise à jour de sécurité GDI+ 1.0 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/gdiplus10security.asp

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

  • Vous recevez un message d’erreur « Aucune information à afficher dans cette vue » quand vous essayez d’accéder à une vue de projet http://support.microsoft.com/default.aspx?scid=kb ;en-us;810596

INFORMATIONS INTERNES

NAVIGATION INTERNET

Il y a environ un an, j’ai annoncé que j’avais basculé d’Internet Explorer à Mozilla parce qu’Internet Explorer n’avait pas les fonctionnalités considérées comme obligatoires pour un navigateur Internet décent, comme le blocage des fenêtres contextuelles, la navigation à onglets, le remplissage automatique des formulaires et le filtrage de la publicité. Peu de temps après quelqu’un m’a pointé vers Avant Browser, un petit téléchargement qui utilise Internet Explorer (ce n’est pas son propre navigateur) pour lui donner tout ça et plus encore. L’interface utilisateur maladroite de Mozilla et le manque de compatibilité avec certains sites que je fréquente ont facilité la prise de décision de changer. Bien que la nouvelle version de FireFox soit meilleure aux deux égards, il existe encore des sites incompatibles (comme Windows Update, par exemple) et donc je n’ai pas ressenti le besoin de changer à nouveau.

La lenteur des progrès de Microsoft dans l’amélioration d’Internet Explorer, même à la lumière des modestes améliorations de Windows XP SP2 d’Internet Explorer, devrait leur faire honte et les pousser à acheter Avant Browser afin de l’intégrer dans la prochaine version d’Internet Explorer.

Téléchargez Avant Browser à l’adresse suivante : http://www.avantbrowser.com

UTILISATION DE LIVEKD POUR RÉSOUDRE LES PROBLÈMES DE SYSTÈMES MALADES

LiveKd est un utilitaire que j’ai écrit pour la 3e édition de Inside Windows 2000 (il s’agit maintenant d’un outil gratuit sur Sysinternals). Il vous permet d’utiliser Windbg ou Kd du package Outils de débogage Microsoft pour Windows pour exécuter les commandes de débogage normalement utilisées pour examiner les images mémoire après incident et les systèmes gelés sur un système en ligne et actif. Microsoft a introduit une fonctionnalité similaire, appelée « débogage de noyau local », pour les outils de débogage lors de l’exécution sur Windows XP et versions ultérieures. Cependant, il existe plusieurs choses que vous pouvez faire avec LiveKd que vous ne pouvez pas faire avec le débogage du noyau local. Par exemple, vous ne pouvez pas examiner les piles de threads en mode noyau avec le débogage du noyau local et la commande list-kernel modules, lm k, répertorie uniquement le noyau du système d’exploitation et non les autres pilotes de charge lorsqu’ils sont exécutés dans le débogage du noyau local. Les deux commandes fonctionnent à l’intérieur de LiveKd.

Une autre commande qui ne fonctionne pas dans le débogage du noyau local, mais qui fonctionne dans LiveKd, c’est .dump. J’ai appris d’un ingénieur des services de support technique Microsoft que la commande .dump peut être utile pour résoudre les problèmes d’un système malade. Un ordinateur qui rencontre des problèmes, mais qui fournit des services tels que le web ou la base de données, peut ne pas être un candidat au redémarrage ou au débogage traditionnel lorsque le système est suspendu pendant l’investigation. L’exécution de LiveKd et l’exécution de .dump aboutit à un fichier au format d’image mémoire après incident qui contient le contenu de la mémoire physique du système. Vous pouvez déplacer le fichier d’image mémoire sur une autre machine et analyser l’état du système d’exploitation et des applications de service en chargeant le fichier d’image mémoire dans WinDbg ou Kd, évitant ainsi une panne pendant que vous examinez la cause d’un problème.

Téléchargez LiveKd à l’adresse
http://www.sysinternals.com/ntw2k/freeware/livekd.shtml

CREEKSIDE?

J’ai récemment étudié l’initialisation de la version Windows XP Service Pack 2 de Winlogon, le processus système chargé de présenter l’interface utilisateur de connexion, quand je suis tombé sur du code dans le désassemblement où Winlogon vérifie la présence d’une DLL nommée ediskeer.dll dans le répertoire\Windows\System32, s’assure que sa signature numérique provient d’un signataire approuvé s’il existe, puis le charge et appelle une fonction sans nom exportée par la DLL. Le code Winlogon qui s’exécute quand une personne se connecte au système appelle également la DLL si elle a été chargée pendant l’initialisation.

J’ai cherché la DLL sur mon système et je ne l’ai pas trouvée, et elle n’est pas également présente sur le CD Service Pack 2. Qu’est-ce que cette DLL ? À l’aide des symboles de débogage fournis par Microsoft pour le système d’exploitation, j’ai pu voir Winlogon configurer une variable nommée « Creekside » si ediskeer.dll est présent et signé, puis j’ai réalisé qu’« ediskeer » se compose des 8 dernières lettres de « creekside » dans l’ordre inverse. Je ne sais toujours pas à quoi Creekside fait référence, mais je soupçonne fortement que la DLL est celle qui est fournie uniquement avec Windows XP Starter Edition, la version à faible coût de Windows XP que Microsoft a récemment introduite pour les pays en développement. Starter Edition est basé sur le même cœur de système d’exploitation que les édition Professionnel et Home de Windows XP Professionnelle et Familiale, mais elle impose des limites au nombre d’applications qu’un utilisateur peut avoir en cours d’exécution simultanée. Si j’ai raison, Winlogon charge la DLL pour appliquer cette limite, l’activant chaque fois qu’un nouvel utilisateur se connecte.

FIXATEUR DE REGISTRE CHKREG

Au fil des ans, Bryce et moi avons reçu de nombreuses demandes pour une analogie de Registre pour Chkdsk, l’utilitaire de vérification de la cohérence du système de fichiers. Nous n’en avons jamais écrit un parce que nous avons senti que le public est trop petit pour justifier l’effort. Il y a environ un an, Microsoft a publié le peu connu Chkreg, un Chkdsk pour le Registre qui corrige de nombreux types d’altération du Registre.

Malheureusement, Chkreg n’est pris en charge que sur Windows 2000 (il peut également fonctionner sur les registres Windows NT 4 et Windows XP) et est implémenté en tant qu’application « native » qui utilise l’API native au lieu de l’API Windows et qui ne s’exécute donc pas sous Windows. Lorsque vous le téléchargez, vous devez l’installer sur un ensemble de six disquettes de démarrage d’installation Windows, une tâche longue et fastidieuse. Nous avons contacté les développeurs de Chkreg et les avons encouragés à publier la version de Windows, car nous avons appris que les services de support technique Microsoft l’utilisent en interne, mais ne disent rien sur quand il le publieront, s’ils le publieront.

Vous pouvez télécharger Chkreg à l’adresse
http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en

DIAGNOSTIC DE MÉMOIRE WINDOWS

L’une des expériences les plus frustrantes pour un utilisateur Windows est un système qui se bloque. Dans la plupart des cas, l’erreur est un pilote de périphérique tiers bogue, que vous pouvez corriger en désactivant le pilote ou en mettant à jour vers une version avec un correctif. Environ 10 % des incidents signalés à Microsoft Online Crash Analysis (OCA) sont causés par des problèmes matériels, dont la majorité sont liés au disque et à la mémoire.

Si vous obtenez des blocages indiquant qu’OCA n’est pas en mesure de diagnostiquer le problème ou si vous soupçonnez un problème de mémoire, vous devez passer quelques minutes avec le Diagnostic de la mémoire Microsoft Windows (WMD, pour Windows Memory Diagnostic), un outil de vérification de la mémoire que Microsoft a récemment publié. Le programme d’installation de WMD demande une disquette ou un CD sur lequel enregistrer le programme. Lorsque vous démarrez une machine à partir de la disquette ou du CD que vous avez créé, WMD s’exécute et effectue un test approfondi de la mémoire de l’ordinateur, en signalant sa progression et tout problème à l’écran. Si vous avez des erreurs de mémoire, WMD peut vous éviter la frustration des plantages Windows.

Vous pouvez télécharger le Diagnostic de la mémoire Windows à l’adresse http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang=en

RECHERCHE D’INTERFACES NON DOCUMENTÉES

La fonctionnalité de l’état de DEP que je décrit dans la section relative aux améliorations de Process Explorer plus haut dans le bulletin s’appuie sur une fonction non documentée. J’ai pensé que beaucoup d’entre vous seraient intéressés à apprendre comment j’ai découvert, sans accès au code source Windows (Dave Solomon, mon co-auteur pour Windows Internals, y a accès, mais pas moi), la fonction et son utilisation appropriée.

La première étape de mon processus d’analyse était d’émettre l’hypothèse qu’une requête de l’état de DEP d’un processus serait acheminée via l’API NtQueryInformationProcess. De nombreuses fonctions d’API Windows qui récupèrent des informations sur un processus utilisent l’interface NtQueryInformationProcess pour obtenir les informations. Cette fonction, qui est présente comme prototype dans le fichier Ntddk.h du Kit de développement de pilotes Windows (DDK, pour Driver Development Kit), est accessible à partir du mode utilisateur via l’interface d’appel système « API native » :

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

Ses deux premiers arguments sont un handle pour un processus et une « classe d’informations de processus ». L’énumération PROCESSINFOCLASS, dont les premières définitions sont présentées ci-dessous, est également incluse dans NTDDK.H :

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

Étant donné que DEP a été introduite dans Windows XP SP2, je ne m’attendais pas à ce que la classe d’informations pour les requêtes DEP soit répertoriée dans les versions Windows XP ou Windows Server 2003 de Ntddk.h, et un rapide contrôle a confirmé son absence. J’ai donc dû examiner un désassemblement de Ntoskrnl.exe de SP 2, l’image où NtQueryInformationProcess est implémentée, pour voir si je pouvais déterminer la classe d’informations de requête DEP de manière empirique.

Un désassembleur prend une image exécutable et répertorie les instructions de langage assembly qui composent son code. Les instructions en langage assembly sont mappées directement aux instructions exécutées par un processeur. Le désassembleur que j’utilise est IDA Pro, http://www.datarescue.com, car il comprend les fichiers d’informations de débogage de Microsoft et intégrera les informations dans la sortie du langage assembly. Dans le désassemblement, j’ai découvert la séquence d’instructions alambiquées au début de NtQueryInformationProcess qui prennent le paramètre de classe d’informations de processus et exécutent le code spécifique à chaque classe. Comme je savais que la classe d’information était nouvelle, je pouvais ignorer l’exécution des classes pour lesquelles j’ai vu des définitions dans l’énumération de PROCESSINFOCLASS de Ntddk. Cela a limité mon enquête aux environ 3 ou 4 nouvelles classes introduites depuis la publication de Windows XP.

L’une des classes, celle qui correspond à une valeur ProcessInformationClass de 0x22, m’a amené à travers un chemin de code dans une fonction nommée MmGetExecuteOptions, dont le début est illustré ici :

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 m’a montré sur la première ligne de la sortie ci-dessus que la fonction accepte un argument, que j’ai soupçonné d’être un pointeur vers une variable qui reçoit les paramètres DEP. J’ai passé suffisamment de temps à examiner les désassemblements du noyau Windows pour reconnaître la séquence d’instructions mov eax, large fs:124h; mov eax,[eax+44h] comme une lecture de la structure de données de thread _KTHREADactuelle dans la structure de la région de contrôle du processeur (PCR, pour Processor Control Region), suivie d’une référence du champ KPROCESS au moment du décalage 0x44 dans la structure _KTHREAD. Les instructions qui suivent lisent des bits individuels dans l’octet au décalage 0x6B dans la structure _KPROCESS.

Ne sachant pas ce qu’il y a au décalage 0x6B dans un _KPROCESS, j’ai lancé Windbg en mode de débogage du noyau local et exécuté la commande dt _kprocess, qui a signalé ce qui suit :

+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

Bien sûr, ces bits sont liés à DEP et il semble que MmGetExecuteOptions les copie de cette structure vers les bits correspondants dans l’emplacement de mémoire passés en tant qu’argument ProcessInformation à NtQueryInformationProcess. J’avais donc déterminé que je pouvais interroger l’état DEP d’un processus en appelant NtQueryInformationProcess avec un ProcessInformationClass de 0x22, l’adresse d’un DWORD (entier de 4 octets) et une longueur de 4. Il semble que MmGetExecuteOptions retourne les indicateurs pour le processus en cours uniquement et ignore le paramètre ProcessHandle (Process Explorer interroge l’état DEP d’autres processus en faisant basculer son pilote d’assistance sur ceux-ci via l’API KeAttachProcess).

J’avais terminé à l’exception de quelques petites différences dans la version 64 bits de Windows, puisque je rends disponible une version 64 bits de Process Explorer. Sur 64 bits, Windows MmGetExecuteOptions nécessite une valeur ProcessHandle de -1 et retourne une erreur STATUS_INVALID_PARAMETER si le processus actuel est un processus 64 bits, car DEP est toujours activé pour les processus 64 bits. J’ai utilisé Windbg pour désassembler la version 64 bits de Ntoskrnl.exe, mais depuis lors, j’ai obtenu la version d’IDA Pro qui prend en charge le démontage d’images AMD64.

FORMATION INTERNALS

WINDOWS CONNECTIONS À SAN FRANCISCO

J’offre deux sessions à la conférence Windows Connections, qui est gérée par Windows IT Pro Magazine et qui se tiendra du 17 au 20 avril à San Francisco. L’une d’elles est une session générale intitulée « Compréhension et lutte contre les programmes malveillants : virus, logiciels espions et rootkits » dans laquelle je décris comment les programmes malveillants exploitent les vulnérabilités pour propager et contourner les mesures de sécurité, comment ils se cachent à l’aide de techniques sophistiquées appelées « rootkits » et comment les détecter et les supprimer de votre système.

L’autre session s’intitule « Résolution des problèmes de mémoire Windows », où je vous montre comment répondre aux anciennes questions : « Que veulent dire les valeurs que je vois dans le Gestionnaire des tâches ?», « Qu’est-ce qui utilise ma mémoire ?» et « Quelle taille doit avoir le fichier de pagination que je crée ?».

Téléchargez la brochure de la conférence et inscrivez-vous à l’adresse
http://www.devconnections.com/shows/win/default.asp?s=60#

CLASSES PRATIQUES WINDOWS INTERNALS/SYSINTERNALS PAR MARK RUSSINOVICH

Passez 5 jours avec Mark Russinovich et David Solomon, auteurs du nouveau livre Windows Internals 4e édition, pour apprendre des techniques avancées de résolution des problèmes tout en approfondissant vos connaissances sur les éléments internes du noyau du système d’exploitation Windows NT/2000/XP/2003. Si vous êtes un professionnel de l'informatique déployant et prenant en charge des serveurs et des postes de travail Windows, vous devez être capable de creuser sous la surface lorsque les choses tournent mal. Comprendre les composants internes du système d'exploitation Windows et savoir utiliser des outils de dépannage avancés vous aidera à résoudre ces problèmes et à comprendre plus efficacement les problèmes de performances du système. Comprendre les composants internes peut aider les programmeurs à mieux tirer parti de la plate-forme Windows, ainsi qu'à fournir des techniques de débogage avancées. Et parce que le cours a été développé avec un accès complet au code source du noyau Windows ET aux développeurs, vous savez que vous obtenez la vraie histoire.

Les dates à venir sont les suivantes :

  • 6-10 JUIN, ORLANDO, FLORIDE
  • 11-15 JUILLET, MUNICH, ALLEMAGNE
  • 19-23 SEPTEMBRE, SAN FRANCISCO, CALIFORNIE
  • 5-9 DÉCEMBRE, AUSTIN, TEXAS

REMARQUE : Il s’agit d’une classe pratique: chaque participant doit apporter son propre ordinateur portable (les instructions de configuration seront envoyées à l’avance).

Vous acquerrez une compréhension approfondie de l'architecture du noyau de Windows NT/2000/XP/2003, y compris les éléments internes des processus, la planification des threads, la gestion de la mémoire, les E/S, les services, la sécurité, le registre et le processus de démarrage. Sont également couvertes les techniques de dépannage avancées telles que la désinfection des logiciels malveillants, l'analyse des vidages sur incident (écran bleu) et la résolution des problèmes de démarrage. Vous apprendrez également des conseils avancés sur l'utilisation des outils clés de www.sysinternals.com (tels que Filemon, Regmon, Process Explorer) pour résoudre une série de problèmes de système et d'application, tels que les ordinateurs lents, la détection de virus, les conflits DLL, les autorisations problèmes et problèmes de registre. Ces outils sont utilisés quotidiennement par le support technique Microsoft et ont été utilisés efficacement pour résoudre une grande variété de problèmes de bureau et de serveur. Par conséquent, connaître leur fonctionnement et leur application vous aidera à résoudre différents problèmes sous Windows. Des exemples concrets seront donnés qui montrent l'application réussie de ces outils pour résoudre des problèmes réels.

Pour vous inscrire, visitez http://www.sysinternals.com/troubleshoot.shtml


Merci d’avoir lu le bulletin Sysinternals.

Publié le mercredi 5 février 2005 à 16:36 par ottoh

[Archive des bulletins ^] [< Volume 6, Numéro 2] [Volume 7, Annonce spéciale >]