Dependency Walker - Como usar - Tutorial

Índice:

Dependency Walker - Como usar - Tutorial
Dependency Walker - Como usar - Tutorial

Vídeo: Dependency Walker - Como usar - Tutorial

Vídeo: Dependency Walker - Como usar - Tutorial
Vídeo: This Sketchy AliExpress Cooler.... - YouTube 2024, Maio
Anonim

Às vezes, as etapas normais de solução de problemas não são suficientes. Podemos precisar ir além - mais como solucionar problemas forenses. Hoje vou escrever sobre uma ferramenta que nos ajudará a fazer isso. Walker de Dependência é uma ferramenta para analisar as dependências de um aplicativo do Windows - como funções, módulos, etc. Ele constrói uma árvore hierárquica de todos os módulos dependentes de um exe, dll, sys, etc.

Walker de Dependência

O Dependency Walker pode ajudá-lo a solucionar problemas de erros de aplicativos, erros de registro de arquivos, violações de acesso à memória e falhas de página inválida.

O Dependency Walker torna-se especialmente útil se um programa específico seu não estiver carregando ou um serviço não estiver iniciando com um erro apontando para uma dll específica. Nesses casos, você pode carregar esse programa ou dll no Dependency Walker, para ver qual arquivo não está carregando ou qual módulo está causando o problema - e, em seguida, corrigi-lo.
O Dependency Walker torna-se especialmente útil se um programa específico seu não estiver carregando ou um serviço não estiver iniciando com um erro apontando para uma dll específica. Nesses casos, você pode carregar esse programa ou dll no Dependency Walker, para ver qual arquivo não está carregando ou qual módulo está causando o problema - e, em seguida, corrigi-lo.

O programa não apenas carrega os módulos, mas também verifica possíveis erros. De acordo com o arquivo de ajuda, ele executa os seguintes trabalhos:

  • Detecta arquivos ausentes. Estes são arquivos que são necessários como uma dependência para outro módulo. Um sintoma desse problema é o erro “A biblioteca de vínculo dinâmico BAR.DLL não pôde ser encontrada no caminho especificado…”.
  • Detecta arquivos inválidos. Isso inclui arquivos que não são compatíveis com Win32 ou Win64 e arquivos que estão corrompidos. Um sintoma desse problema é o erro “O aplicativo ou a DLL BAR.EXE não é uma imagem válida do Windows”.
  • Detecta incompatibilidades de importação / exportação. Verifica se todas as funções importadas por um módulo são realmente exportadas dos módulos dependentes. Todas as funções de importação não resolvidas são marcadas com um erro. Um sintoma desse problema é o erro “O ponto de entrada do procedimento FOO não pôde ser localizado na biblioteca de vínculo dinâmico BAR.DLL”.
  • Detecta erros de dependência circulares. Este é um erro muito raro, mas pode ocorrer com funções encaminhadas.
  • Detecta tipos de módulos de CPU incompatíveis. Isso ocorre se um módulo construído para uma CPU tentar carregar um módulo construído para uma CPU diferente.
  • Detecta inconsistências de soma de verificação verificando as somas de verificação do módulo para ver se algum módulo foi modificado depois de serem construídos.
  • Detecta colisões de módulos, destacando todos os módulos que não conseguem carregar em seu endereço de base preferido.
  • Detecta falhas de inicialização do módulo rastreando chamadas para os pontos de entrada do módulo e procurando por erros.
  • O Dependency Walker também pode executar um perfil de tempo de execução de seu aplicativo para detectar módulos carregados dinamicamente e falhas de inicialização do módulo. A mesma verificação de erros acima aplica-se também aos módulos carregados dinamicamente.

Por exemplo, eu estava ajudando um cliente no outro dia - ela estava carregando o Internet Explorer, mas o IE continuava travando, sem nenhum erro específico. Nós tínhamos feito a maioria das soluções básicas de problemas, como desabilitar complementos e barras de ferramentas, redefinir o IE para a configuração padrão, etc.Mas ainda continuava travando. Isso significava que um ou mais arquivos necessários para o Internet Explorer serem executados corretamente criavam um problema. É sempre difícil solucionar esses casos, mas com o Dependency Walker, podemos ver se algo está errado em um dos arquivos dependentes.

Então eu carreguei o Internet Explorer no Dependency Walker.

Eu próximo, expandi a lista um por um
Eu próximo, expandi a lista um por um
Então eu passei por cada um dos módulos, para ver se eu poderia encontrar algo suspeito lá. Eu rolei pelo módulo e tive sorte o suficiente para encontrar o problema.
Então eu passei por cada um dos módulos, para ver se eu poderia encontrar algo suspeito lá. Eu rolei pelo módulo e tive sorte o suficiente para encontrar o problema.
Eu encontrei que o arquivo IEFRAME.dll estava faltando. Então eu fui e substitui o arquivo do DVD de instalação do Windows. Isso resolveu o problema. Agora o Internet Explorer não caiu mais.
Eu encontrei que o arquivo IEFRAME.dll estava faltando. Então eu fui e substitui o arquivo do DVD de instalação do Windows. Isso resolveu o problema. Agora o Internet Explorer não caiu mais.

Espero que isso lhe diga como é fácil usar a ferramenta para descobrir possíveis erros de dependência.

Como usar o Dependency Walker

Para usar o Dependency Walker para investigar erros, você pode seguir estas etapas:

  1. Inicie o Dependency Walker
  2. Clique em Abrir no menu Arquivo para carregar o arquivo com problema
  3. No menu Exibir, clique em Iniciar criação de perfil. A caixa de diálogo Módulo de perfil aparece
  4. Digite quaisquer opções, argumentos do programa, outras opções desejadas e clique em OK.

O Dependency Walker injetará dwinject.dll antes que o erro ocorra e registrará os eventos ocorrendo no momento do erro.

Download do Dependency Walker

Você pode baixar o Dependency Walker de Aqui.

Recomendado: