Dependency Walker: полезная утилита в копилку IT-профессионала

Dependency Walker (от англ. "обходчик зависимостей") - это гениальная по своей простоте программа для первичного анализа исполняемых файлов и библиотек. Говоря русским языком - это программа-анализатор, собирающая для вас информацию о другой выбранной вами программе, например, о компьютерной игрушке или пользовательском приложении.

Основное назначение Dependency Walker - помочь выяснить, от каких исполняемых файлов и библиотек зависит анализируемое приложение. Это позволяет идентифицировать такие проблемы с приложением, как:

  1. Отсутствие нужной библиотеки (имя библиотеки будет подсвечено красным в списке слева)
  2. Не совпадение версий (проблемная библиотека будет подсвечена розовым) - это означает, что некоторые необходимые приложению функции в ней отсутствуют.
  3. Использование неправильной версии библиотеки - это будет заметно если посмотреть на полные пути к библиотекам в нижней части окна.

Вспомогательные возможности программы:

  1. Определение целевой операционной системы - DOS/Win16/Win32/Win64/etc, аппаратной архитектуры и графической подсистемы
  2. Определение точной даты создания приложения/библиотеки
  3. Определение языка программирования, на котором написано приложение (проще всего это делается по списку зависимостей; например, mscoree.dll с некоторой степенью достоверности соответствует .Net приложению, msvbvm60.dll - Visual Basic 6.0, a msvcr80.dll - Visual C++ 2005).
  4. Определение типа доступной отладочной информации - CodeView/FPO/PDB
  5. Определение функций операционной системы, используемых приложением. (например, wininet.dll с некоторой степенью достоверности говорит о прямом доступе к Интернету, ole32.dll о работе с COM-компонентами, user32.dll о работе с окнами, winmm.dll - о проигрывании музыки, а dbghelp.dll о расширенной обработке ошибок).
  6. Просмотр названий функций, экспортируемых библиотекой - это это бывает полезно при отладке собственных приложений для выявления ошибок с декорированием имен функций (name mangling).

Нетривиальная возможность - это динамический анализ зависимостей. Программы позволяет запускать приложение на исполнение и отслеживать (трассировать) все этапы разрешения имен файлов и функций.

Да, ну и конечно, как и все современные утилиты :), программа интегрирована со справочными системой (по умолчанию это MSDN).

Dependency Walker можно бесплатно загрузить с сайта https://www.dependencywalker.com/ (скорее всего вас интересует самая первая ссылка на этой странице - Download Version 2.1.3623 for X86). Пользователям Visual Studio 2005 ничего загружать не нужно - утилита уже входит в состав пакета. Единственный совет - настроить ее интеграцию с контекстными меню для exe и dll файлов (а также sys, scr, drv, etc.).