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)

x64
Searching Database…

What is this?Dependencies is an open-source, modern replacement for Dependency Walker — a Windows tool that helps developers troubleshoot DLL load dependency issues by showing what an executable or library needs to load.
Is this the original Dependency Walker, or a new project?It's a from-scratch C# rewrite of the legacy depends.exe that used to ship with Windows SDKs; that original stopped being developed around 2006, while this project keeps shipping updates (up to v1.11).
How do I get it onto my machine?There's no installer: download a release archive from GitHub, uncompress it and run DependenciesGui.exe for the GUI or Dependencies.exe for the CLI. Since v1.8 there are separate x86 and x64 builds.
Will it run right after I unzip the download?Almost — you first need the Visual C++ Redistributable installed; without it the tool won't run properly, a side effect of its /clr compilation.
Does it catch every dependency an app loads at runtime?No — it resolves direct, forwarded and delay-load imports plus API set redirection, but DLLs loaded dynamically via LoadLibrary stay invisible, and likely always will; Sxs private manifests get only minimal support.
Can I use it on Linux or a Mac?No — it's a Windows-only tool for Windows DLL problems: the GUI is a WPF desktop app and releases ship as x86 and x64 Windows binaries.
Will SmartScreen or my antivirus complain about it?Possibly. The release binaries are unsigned, so SmartScreen may warn on first run, and the README offers an alternate download link for cases where an antivirus flags the main archive.
Why doesn't the dependency tree expand everything by default?Full recursion is memory-hungry — it can top a GB of RAM even for simple PEs. The default ChildOnly mode processes only direct child imports; you can switch to RecursiveOnlyOnDirectImports or full Recursive under Options, Properties, Tree build behaviour.
Can I run it from a script instead of the GUI?Yes. Since v1.7 the download includes a CLI tool, dependencies.exe, alongside DependenciesGui.exe. The archive also bundles ClrPhTester.exe, a dumpbin-like helper the author uses to test for regressions.
What extra analysis does it offer beyond the dependency tree?It displays imports and exports the way depends.exe does, checks API imports against exports, parses API set schemas and Sxs manifests (since v1.5), enumerates CLR assembly dependencies, lets you filter the API and modules lists, and demangles symbols with an LLVM demangler (added in v1.9).
Creator
lucasg
Size
15 MB
Stars
11.9K
Age
9y
Commits · 90 Days