Dependency Walker

Discussion in 'Безопасность и Анонимность' started by IIAHbI4, 30 Jul 2007.

  1. IIAHbI4

    IIAHbI4 Banned

    Joined:
    24 Aug 2006
    Messages:
    276
    Likes Received:
    331
    Reputations:
    11
    Dependency Walker: полезная утилита в копилку IT-профессионала
    Published 15 November 06 10:40 AM | Vitaliy Titov

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

    [​IMG]

    Основное назначение 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 можно бесплатно загрузить с сайта http://www.dependencywalker.com/ (скорее всего вас интересует самая первая ссылка на этой странице - Download Version 2.1.3623 for X86). Пользователям Visual Studio 2005 ничего загружать не нужно - утилита уже входит в состав пакета. Единственный совет - настроить ее интеграцию с контекстными меню для exe и dll файлов (а также sys, scr, drv, etc.).
    Filed under: debug