Windows

Dependency Walker - Cómo usar - Tutorial

TransVision 2018: Rueda de prensa / Press conference (subtitled English/Spanish)

TransVision 2018: Rueda de prensa / Press conference (subtitled English/Spanish)

Tabla de contenido:

Anonim

A veces, los pasos normales para la solución de problemas simplemente no lo cortarán. Es posible que tengamos que ir más allá, más como solución de problemas forenses. Hoy escribiré sobre una herramienta que nos ayudará a hacer eso. Dependency Walker es una herramienta para analizar las dependencias de una aplicación de Windows, como funciones, módulos, etc. Construye un árbol jerárquico de todos los módulos dependientes de un exe, dll, sys, etc.

Dependency Walker

Dependency Walker puede ayudarlo a solucionar problemas de aplicaciones, errores de registro de archivos, violaciones de acceso a la memoria y fallas de página no válidas.

Dependency Walker se vuelve especialmente útil si un programa específico no se carga o un servicio está fallando para comenzar con un error que apunta a un dll específico. En tales casos, puede cargar ese programa o dll en Dependency Walker, para ver qué archivo no se carga o qué módulo está causando el problema, y ​​luego solucionarlo.

El programa no solo carga los módulos, sino que también escanea en busca de posibles errores. De acuerdo con el archivo de Ayuda, realiza los siguientes trabajos:

  • Detecta los archivos perdidos. Estos son archivos que se requieren como una dependencia de otro módulo. Un síntoma de este problema es el error "La biblioteca de vínculos dinámicos BAR.DLL no se puede encontrar en la ruta especificada …".
  • Detecta archivos no válidos. Esto incluye archivos que no son compatibles con Win32 o Win64 y archivos que están corruptos. Un síntoma de este problema es el error "La aplicación o DLL BAR.EXE no es una imagen válida de Windows".
  • Detecta errores de importación / exportación. Verifica que todas las funciones importadas por un módulo se exportan realmente desde los módulos dependientes. Todas las funciones de importación no resueltas se marcan con un error. Un síntoma de este problema es "El punto de entrada al procedimiento en el que no se pudo ubicar FOO en la biblioteca de vínculos dinámicos BAR.DLL" error.
  • Detecta errores de dependencia circular. Este es un error muy raro, pero puede ocurrir con funciones reenviadas.
  • Detecta tipos de CPU desajustados de módulos. Esto ocurre si un módulo creado para una CPU intenta cargar un módulo creado para una CPU diferente.
  • Detecta inconsistencias de suma de verificación verificando las sumas de verificación de los módulos para ver si los módulos se han modificado después de su creación.
  • Detecta las colisiones de módulos destacando los módulos que no se pueden cargar en su dirección base preferida.
  • Detecta fallas de inicialización del módulo al rastrear llamadas a los puntos de entrada del módulo y buscar errores.
  • Dependencia Walker también puede realizar un perfil en tiempo de ejecución de su aplicación para detectar módulos cargados dinámicamente y fallas de inicialización del módulo. La misma comprobación de errores desde arriba se aplica a los módulos cargados dinámicamente también.

Por ejemplo, el otro día estaba ayudando a un cliente: ella cargaba Internet Explorer, pero IE seguía bloqueándose, sin ningún error específico. Habíamos hecho la mayor parte de la resolución de problemas básicos, como deshabilitar complementos y barras de herramientas, restablecer IE a la configuración predeterminada, etc. Pero aún así se mantuvo bloqueado. Esto significaba que uno o más archivos requeridos para que Internet Explorer se ejecutara correctamente, estaba creando un problema. Siempre es difícil solucionar estos casos, pero con Dependency Walker, podemos ver si hay algún problema con uno de los archivos dependientes.

Así que cargué Internet Explorer en Dependency Walker.

A continuación, expandí la lista uno por uno

Luego revisé cada uno de los módulos, para ver si podía encontrar algo sospechoso allí. Me desplacé por el módulo y tuve la suerte de encontrar el problema.

Descubrí que faltaba el archivo IEFRAME.dll. Así que fui y reemplacé el archivo del DVD de instalación de Windows. Eso resolvió el problema. Ahora Internet Explorer ya no se colgó.

Espero que esto le diga lo fácil que es usar la herramienta para descubrir posibles errores de dependencia.

Cómo usar Dependency Walker

Para usar Dependency Walker para investigar errores, puede seguir estos pasos:

  1. Iniciar Dependency Walker
  2. Haga clic en Abrir en el menú Archivo para cargar el archivo problemático
  3. En el menú Ver, haga clic en Iniciar perfil. Aparecerá el cuadro de diálogo del Módulo de perfil
  4. Escriba los modificadores, los argumentos del programa, otras opciones que desee y luego haga clic en Aceptar.

Dependencia Walker inyectará dwinject.dll antes de que se produzca el error y registrará los eventos que tienen lugar en el momento de el error.

Descarga de Dependency Walker

Puede descargar Dependency Walker de aquí.