Windows

Dependency Walker - Comment utiliser - Didacticiel

Hubertus Knabe: The dark secrets of a surveillance state

Hubertus Knabe: The dark secrets of a surveillance state

Table des matières:

Anonim

Parfois, les étapes de dépannage normales ne le coupent pas. Nous pourrions avoir besoin d`aller au-dessus et au-delà - plus comme un dépannage judiciaire. Aujourd`hui, je vais écrire sur un outil qui nous aidera à le faire. Dependency Walker est un outil pour analyser les dépendances d`une application Windows - comme les fonctions, modules, etc. Elle construit une arborescence hiérarchique de tous les modules dépendants d`un exe, dll, sys, etc.

Dependency Walker

Dependency Walker peut vous aider à dépanner les erreurs d`application, les erreurs d`enregistrement, les violations d`accès à la mémoire et les erreurs de page invalides

Dependency Walker devient particulièrement utile si un de vos programmes ne se charge pas ou qu`un service échoue pour commencer avec une erreur pointant vers une DLL spécifique. Dans ce cas, vous pouvez charger ce programme ou dll dans Dependency Walker, pour voir quel fichier ne parvient pas à charger ou quel module est à l`origine du problème, puis le corriger.

Le programme ne charge pas seulement les modules, mais analyse les erreurs potentielles. Selon le fichier d`aide, il effectue les tâches suivantes:

  • Détecte les fichiers manquants. Ce sont des fichiers qui sont requis en tant que dépendance à un autre module. Un symptôme de ce problème est l`erreur «Impossible de trouver la bibliothèque de liens dynamiques BAR.DLL dans le chemin spécifié …».
  • Détecte les fichiers non valides. Cela inclut les fichiers qui ne sont pas compatibles Win32 ou Win64 et les fichiers qui sont corrompus. Un symptôme de ce problème est l`erreur "l`application ou DLL BAR.EXE n`est pas une image Windows valide"
  • Détecte les discordances d`importation / exportation. Vérifie que toutes les fonctions importées par un module sont effectivement exportées à partir des modules dépendants. Toutes les fonctions d`importation non résolues sont marquées d`une erreur. Un symptôme de ce problème est l`erreur "Le point d`entrée de la procédure FOO n`a pas pu être localisé dans l`erreur BARRE DLL de la bibliothèque de liens dynamiques".
  • Détecte les erreurs de dépendance circulaire. Il s`agit d`une erreur très rare, mais qui peut se produire avec les fonctions transférées
  • Détecte les types de modules CPU incompatibles. Cela se produit si un module construit pour une CPU essaye de charger un module construit pour un CPU différent
  • Détecte les incohérences de checksum en vérifiant les checksums des modules pour voir si des modules ont été modifiés après leur construction.
  • Détecte les collisions de modules en
  • Détecte les échecs d`initialisation du module en suivant les appels vers les points d`entrée du module et en recherchant les erreurs
  • Dependency Walker peut également exécuter un profil d`exécution de votre application pour détecter les erreurs. modules chargés dynamiquement et échecs d`initialisation du module. La même vérification d`erreur que celle décrite ci-dessus s`applique également aux modules chargés dynamiquement

Par exemple, j`aidais un client l`autre jour - elle chargeait Internet Explorer, mais IE continuait à se bloquer, sans aucune erreur spécifique. Nous avions effectué la plupart des dépannages de base comme la désactivation des modules complémentaires et des barres d`outils, la réinitialisation de IE aux paramètres par défaut, etc. Cela signifiait qu`un ou plusieurs fichiers requis pour qu`Internet Explorer s`exécute correctement créait un problème. Il est toujours difficile de dépanner de tels cas mais avec Dependency Walker, nous pouvons voir si quelque chose ne va pas avec un des fichiers dépendants.

J`ai donc chargé Internet Explorer dans Dependency Walker.

J`ai ensuite développé la liste un par un

Ensuite, j`ai parcouru chacun des modules, pour voir si je pouvais y trouver quelque chose de suspect. J`ai fait défiler le module et j`ai eu la chance de trouver le problème.

J`ai trouvé que le fichier IEFRAME.dll était manquant. Donc je suis allé et a remplacé le fichier du DVD d`installation de Windows. Cela a résolu le problème. Maintenant, Internet Explorer ne plante plus.

J`espère que cela vous indiquera à quel point il est facile d`utiliser l`outil pour trouver d`éventuelles erreurs de dépendance.

Comment utiliser Dependency Walker

Pour utiliser Dependency Walker pour étudier les erreurs, vous pouvez procéder comme suit:

  1. Démarrer Dependency Walker
  2. Cliquez sur Ouvrir dans le menu Fichier pour charger le fichier de problème
  3. Dans le menu Affichage, cliquez sur Démarrer le profilage. La boîte de dialogue Module de profil apparaît
  4. Tapez les commutateurs, les arguments du programme, les autres options souhaitées, puis cliquez sur OK

Dependency Walker injectera dwinject.dll avant que l`erreur ne se produise et enregistrera les événements qui se produisent au moment de l`erreur.

Dependency Walker download

Vous pouvez télécharger Dependency Walker depuis ici.