Dependencies README

The project's README from github.com/lucasg/Dependencies. As one markdown file: README.md.

Dependencies - An open-source modern Dependency Walker

Build status

Download here

(If you're running an AV, use this download instead)

NB : due to limitations on /clr compilation, Dependencies needs Visual C++ Redistributable installed to run properly.

Usage Exemple

Overview

Dependencies is a rewrite of the legacy software Dependency Walker which was shipped along Windows SDKs, but whose development stopped around 2006. Dependencies can help Windows developers troubleshooting their dll load dependencies issues.

Releases

Installation and Usage

Dependencies is currently shipped as two binaries (no installer present) : Dependencies.exe as a CLI tool and DependenciesGui.exe for its GUI counterpart (see screenshot). Just click on one of the release numbers above (preferably the latest), download and uncompress the archive and run DependenciesGui.exe. Since the binary is not signed, SmartScreen might scream at runtime. Dependencies also bundle ClrPhTester.exe, a dumpbin-like executable used to test for non-regressions.

Dependencies currently does not recursively resolve child imports when parsing a new PE since it can be really memory-hungry to do so ( it can over a GB even for "simple" PEs ). This behavior can be overridden (app-wide) via a property located in "Options->Properties->Tree build behaviour".

User options

Tree build behaviours available :

Yes that's 7 GB of RAM being consumed. I'm impressed the application didn't even crash

Limitations

At the moment, Dependencies recreates features and "features" of depends.exe, which means :

Building

Building is pretty straightforward. The only caveat is you need to select the "Debug" or "Release" configuration and "x64" or "x86" platform which may not be the default.

Credits and licensing

Special thanks to :

Dependencies (lucasg/Dependencies)

Searching Database…

Что это такое?Dependencies — это открытая современная замена Dependency Walker: утилита для Windows, которая помогает разработчикам разбираться с проблемами загрузки DLL, показывая, что нужно загрузить исполняемому файлу или библиотеке.
Это оригинальный Dependency Walker или новый проект?Это полностью переписанный на C# с нуля аналог устаревшего depends.exe, который раньше поставлялся с Windows SDK. Оригинал перестали развивать примерно в 2006 году, а этот проект продолжает выпускать обновления (вплоть до v1.11).
Как установить его на свой компьютер?Установщика нет: скачайте архив релиза с GitHub, распакуйте его и запустите DependenciesGui.exe для графического интерфейса или Dependencies.exe для командной строки. Начиная с v1.8 есть отдельные сборки x86 и x64.
Программа запустится сразу после распаковки архива?Почти — сначала нужно установить Visual C++ Redistributable; без неё программа не будет работать как следует. Это побочный эффект компиляции с /clr.
Программа покажет все зависимости, которые приложение загружает во время работы?Нет — она разрешает прямые, перенаправленные и отложенные импорты, а также перенаправление API set, но DLL, загружаемые динамически через LoadLibrary, остаются невидимыми и, скорее всего, так и останутся. Sxs private manifests поддерживаются лишь минимально.
Работает ли она на Linux или Mac?Нет — это утилита только для Windows и только для проблем с Windows DLL: интерфейс — настольное приложение на WPF, а релизы распространяются как бинарники для Windows x86 и x64.
Будет ли ругаться SmartScreen или антивирус?Возможно. Бинарники релизов не подписаны, поэтому SmartScreen может показать предупреждение при первом запуске, а в README есть альтернативная ссылка для скачивания на случай, если антивирус пометит основной архив.
Почему дерево зависимостей по умолчанию разворачивается не полностью?Полная рекурсия требует много памяти — даже для простых PE-файлов может уйти больше гигабайта ОЗУ. Режим ChildOnly по умолчанию обрабатывает только прямые дочерние импорты; переключиться на RecursiveOnlyOnDirectImports или полный Recursive можно в Options, Properties, Tree build behaviour.
Можно запустить её из скрипта, а не через графический интерфейс?Да. Начиная с v1.7 в комплект входит утилита командной строки dependencies.exe рядом с DependenciesGui.exe. В архиве также есть ClrPhTester.exe — вспомогательная программа вроде dumpbin, которой автор пользуется для проверки на регрессии.
Какой дополнительный анализ она предлагает помимо дерева зависимостей?Она показывает импорты и экспорты так же, как depends.exe, сверяет импорты API с экспортами, разбирает схемы API set и манифесты Sxs (с v1.5), перечисляет зависимости CLR-сборок, позволяет фильтровать списки API и модулей и расшифровывает (деманглит) имена символов с помощью LLVM-деманглера (добавлено в v1.9).
Creator
lucasg
Size
15 MB
Stars
11.9K
Age
9y
Commits · 90 Days